Hi,
die Frage nach C oder Assembler erübrigt sich, wenn man den Forentitel betrachtet => C.
Die Frage nach der Hardware wurde auch beantwortet: Mega8, 16x2 LCD.
Zum Problem:
Du könntest das so lösen, dass du einen String hast, der eben die 24 Zeichen (oder auch mehr enthält):
Code:
uint8_t *langekette
Und dann hast du einen Indexwert
, der bei einem Timerinterrupt hochgezählt wird (also jedes mal, wenn die Laufschrift ein Zeichen weiter gehen soll). Danach (im gleichen Interrupt) wird eine Methode aufgerufen, die 16 Zeichen auf das LCD packt. Und zwar müsste diese Methode vom index an bis zum Ende und dann noch entsprechend viele Zeichen vom Anfang schreiben. Es könnte so aussehen (ungetestet, teilweise pseudocode):
Code:
void laufschrift_aktualisieren(void)
{
uint8_t *temp;
uint8_t i;
*temp = *langekette;
*temp = *temp + index;
while(*temp)
{
LCD_PUT(*temp); // ein zeichen auf's LCD
*temp++;
i++;
}
*temp = *langekette;
for (; i <= 16; i++)
{
LCD_PUT(*temp)
}
}
Mal gucken, ob bessere Ideen kommen, gibt sicherlich noch einige Verbesserungsmöglichkeiten. Für Erklärungen einfach nochmal nachfragen.
Gruß, CowZ
Lesezeichen