LCD Anzeige und Arrays

OP #2506225
Hallo Leute,

Ich beschäftige mich erst seit kurzem mit dem Thema ATMEGA und 
experimentier noch etwas mit dem STK500 herum.
Derzeit bin ich dabei mich mit dem Thema LCD Display zu befassen.
Dabei bin ich auf folgendes Problem gestossen:

Wenn ich der routine lcd_string(); einen string übergebe funktioniert 
alles bestens wenn ich allerdings ein char Array baue und einen Wert 
übergeben will kommen nur Sonderzeichen. Egal ob ich es mit zahlen oder 
Texten versuche.
Was mache ich da falsch ?:

Danke für Eure Hilfe

lg Eddi

#include <avr/io.h>
#include "lcd-routines.h"
#include "lcd-routines.c"


int main(void)
{
  // Initialisierung des LCD
  lcd_init();
  lcd_setcursor( 0, 2 );

  char Ausgabe = "xxx";
  int push,i,zahl = 0;

   char rgb_wert[3]={'100','200','300'};

  while(1)
  {
  push = check_button(0);      //Abfrage ob Taste gedrückt wurde
  {
  if(push == 1)          //Wenn Taste gedrückt wurde ->
    {
    Ausgabe = rgb_wert[i];
    i++;
    }
  }

  push = check_button(1);      //Abfrage ob Taste gedrückt wurde
  {
    if(push == 1)          //Wenn Taste gedrückt wurde ->
    {
      Ausgabe = "100";
    }
  }
  lcd_setcursor( 0, 2 );
  lcd_string(Ausgabe);
  }

  return 0;
}
Gast #2506261
>Was mache ich da falsch ?:

Du versuchst per Try and Error C zu lernen.
Das geht allerdings in die Hose.

>   char rgb_wert[3]={'100','200','300'};
>   Ausgabe = "100";

Warum z.B. diese beiden ausgewählten Zeilen
entweder gar nicht oder nur mit massiven Warnings
compiliert werden erzählt dir ein Buch zu C
das du dir noch besorgen musst.
Gast #2506316
Eddi Ramoser schrieb:
> char Ausgabe = "xxx";

Du erzeugst ein einziges char, weist dann aber einen String zu.
So würde es gehen:
1
char Ausgabe[] = "xxx";

Eddi Ramoser schrieb:
> char rgb_wert[3]={'100','200','300'};

Das ist genauso Bullshit.
Entweder Du lässt die Anführungszeichen weg, dann weist Du einen 
Dezimalen Wert zu (das letzte Zeichen geht aber nicht! Stichwort 
Wertebereich eines chars).
Die 2.Möglichkeit ist Du willst wirklich ein char zuweisen, z.B.
1
char rgb_wert[3]={'1','2','3'};
2
char abc_wert[3]={'x','y','z'};
OP #2506336
Hallo SNR

Danke für Deine Hilfe so komme ich der Sache näher - ich komme aus einer 
anderen Ecke der Programmiersprachen und muss mich c erst annähern  ( 
Buch habe ich bereits).

>>> Was passiert wenn Du die Taste länger drückst und in i z.B. 4 drin
steht?

ich weiss das war nur ein Test - ich muss den Wert i abfangen.

lg eddi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.