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; }
>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.
Hi Holger Was meinst du damit genau ? Kannst du mir bitte einen Tipp geben ? lg eddi
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'}; |
Eddi Ramoser schrieb: > if(push == 1) //Wenn Taste gedrückt wurde -> > { > Ausgabe = rgb_wert[i]; > i++; > } Was passiert wenn Du die Taste länger drückst und in i z.B. 4 drin steht?
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.