Ich verwende einen ATMEGA8535. Jetzt möchte ich auf mein Display den aktuellen Wochentag ausgeben. Dazu habe ich dies deklariert: unsigned char text[] = {"Mo.Di.Mi.Do.Fr.Sa.So."}; Die Ausgabefunktion von meinem T6963 Display lautet: lcd_printfz(0,6,"%02s.",text); Jetzt weiss ich nicht wie ich der Funktion sage das immer NUR ein Wochentag ausgegeben wird. So wie es da steht erscheint alles auf dem Display.
1 | unsigned char text[][] = { "Mo.", "Di.", "Mi.", "Do.", |
2 | "Fr.", "Sa.", "So."); |
3 | |
4 | int i = 2; |
5 | lcd_printfz(0, 6, "%s", text[i]); |
Sollte [Mi.] auf dem Display anzeigen.
Das funktioniert bei mir immer noch nicht. Compiler mekert nicht. Hmm..Den Code versteh ich nicht.Warum 2 dimensionales Array?
Spezifiziere mal ein wenig näher, was "das funktioniert nicht" bedeutet, bitte...
Warum kann ich es so nicht machen? unsigned char text[] = {"Mo.Di.Mi.Do.Fr.Sa.So."};
Weil das ein String ist, nicht sieben. Literaturhinweis: Kernighan & Ritchie, "Programmieren in C", 2. Ausgabe, Hanser Verlag
Oder so:
1 | unsigned char text[] = {"MoDiMiDoFrSaSo"}; |
2 | |
3 | int i = 2; |
4 | lcd_printfz(0, 6, "%c%c.", text[2*i], text[2*i+1]); |
Peter
Ich kann dieser Funktion leider nur eine Variable ausgeben. Aber es müsste doch auch so gehen, dass ich z.B. Mo ausgeben kann. Oder ich müsste meine Funktion umbasteln.Aber wie.... Funktion: void lcd_printfz(unsigned int x, unsigned int y, unsigned char flash *format, unsigned char *zahl) { sprintf(zahl_buffer,format,zahl); lcd_write_zahl(x, y, zahl_buffer); }
Ich würde den Stringtrenner \0 dazwischenmachen: unsigned char text[] = "Mo\0Di\0Mi\0Do\0Fr\0Sa\0So"}; lcd_printfz(0, 6, "%s", text[i*3]);
Kein Problem, ich benutze häufiger solche Felder, schreib einfach: char *text[] = {"Mo.", "Di", "Mi.", "Do.", "Fr.", "Sa.", "So."}; Aufruf dann mit lcd_printfz(0, 6, "%s", text[i*3]); Gruß Mario
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.