Hallo, habe mir den folgenden Code für eine Laufschrift ausgedacht:
1 | unsigned char zeile=16, marke=0, i=0; |
2 | char ausgabe[zeile]; |
3 | char eingabe[] = "Keine Ahnung "; |
4 | |
5 | long eingabe_laenge = strlen(eingabe); |
6 | |
7 | lcd_init(); |
8 | |
9 | while (1) { |
10 | |
11 | for (i=0;i<zeile;i++) { |
12 | |
13 | if (marke+i < eingabe_laenge) ausgabe[i] = eingabe[marke+i]; |
14 | else ausgabe[i] = eingabe[marke+i-eingabe_laenge]; |
15 | |
16 | } // Ende for |
17 | |
18 | ausgabe[zeile]='\0'; // terminieren der Ausgabe ! |
19 | lcd_string(ausgabe); |
20 | |
21 | i=0; |
22 | marke++; |
23 | if (marke == eingabe_laenge) marke = 0; |
24 | |
25 | _delay_ms(1000); |
26 | lcd_clear(); |
27 | |
28 | } // Ende while |
Leider wird nur beim ersten Durchlauf der for-Schleife der Text hintendrangehängt. Das verstehe ich einfach nicht :-( Wenn ich die Inkrementierung von 'marke' testweise weglasse zeigt mein Display nur beim ersten Durchlauf etwas an. Kann mir vielleicht jemand auf die Sprünge helfen? Danke schon mal, Gruß Thomas