PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laufchrift auf LCD 8-[



Goli2007
20.05.2007, 13:53
Ich habe mein 16*2-LCD mit meinem ATMega8 ansteuern versucht. Mit Programmierung über AVR Studio habe ich noch Probleme, wie kann ich Laufschrift von zeile aus 24 zeichen auf dem LCD zu programmieren?
Bitte kann jemand mir helfen 8-[

Hubert.G
20.05.2007, 16:41
Etwas sehr wenig Info zu deinem Problem. Progst du in C oder Assembler, was hast du schon geschrieben, was für eine LCD-Lib verwendest du, wie sieht deine Hardware aus. Wenn all das da ist wird dir sicher jemand helfen können.
Hubert

Goli2007
20.05.2007, 19:18
Ich wollte diese laufschrift auf C programmieren. abre das klappt immer nicht. hat jemaend diese Programm?

Hubert.G
20.05.2007, 21:00
Das AVR-Studio kannst du dir von www.atmel.com/dyn/products/tools.asp?family_id=607
kostenlos herunterladen.
Hubert

CowZ
20.05.2007, 21:00
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):

uint8_t *langekette
Und dann hast du einen Indexwert

uint8_t index
, 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):


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

PCMan
20.05.2007, 23:20
Gibt es in Fleuries Bibliotheken nicht Anweisungen für den LCD-Controller für Shift-Befehle? Ansonsten Softwaremäßige Lösung:
String in "Schattenspeicher" packen und immer 16 Zeichen lange Ausschnitte zeigen lassen...