Goblin
06.02.2006, 21:40
TAG!
Was ich vorhabe ist: Ich will nen kleines Prog schreiben, das quasi als "Demo" für mein neues LCD-Modul nach eigenem Standart dienen soll. Es geht mir darum meinem Board mit Atmega8 per RS232 Signale zu geben, die auf dem LCD angezeigt werden. Es gibt 2 Arten von Signalen: Steuerbefehle und Text.
Steuerbefehle z.b. den Cursor ein. Text wird auf dem LCD angezeigt. Bisher hab ichs so gemacht:
Schleife:
Input Eingabe , Zweigabe Noecho
If Eingabe = "%CBlink" Then Goto Cursormode
If Eingabe = "%CNoBlink" Then Goto Cursormode
If Eingabe = "%COn" Then Goto Cursormode
If Eingabe = "%COff" Then Goto Cursormode
Home Upper
Lcd Eingabe
Home Lower
Lcd Zweigabe
Goto Schleife
Cursormode:
If Eingabe = "%CBlink" Then Cursor Blink
If Eingabe = "%CNoBlink" Then Cursor Noblink
If Eingabe = "%COn" Then Cursor On
If Eingabe = "%COff" Then Cursor Off
If Eingabe = "%CLS" Then Cls
Goto Schleife
Das sind jetzt nur die Scheifen um die's geht. Die Steuerbefehle haben nen % davor. Ich mach nen Input mit 2 Variablen. (Ich denke mal man macht das im Terminal so dass man eine Zeile eingibt, dann "Enter" drückt und den nächsten eingibt). Dann schau ich ob es sich um nen Steuerbefehl oder Text handelt. Wenn es Steuerbefehl ist springt er in die Schleife Cursormode. Da wird der entsprechende Befehl ausgeführt und dann gehts wieder zur Eingabe. Wenns kein Steuerbefehl ist, dann wird die erste Variable in der ersten Reihe meines 16*2-LCDs angezeigt und die zweite in der zweiten. Ich denke mal der Spass müsste so funktionieren. Ich hab bisher nur den Code geschrieben und bin ein paar 100 km von meinem Board entfernt. Was ich jetzt gerne tun würde (Ja, jetzt kommt endlich die Frage! :) ) ist: Nicht in der ersten Schleife JEDEN Steuerbefehl einzeln raussuchen sondern sofort beim "%" springen. Wie kann ich den ersten Char eines Strings raussuchen? Oder einen beliebigen String mit der Länge n | n > 0 aus einem String herausziehen? Geht das überhaupt?
Zweite Frage: Ich habe schon des öfteren gehört, dass wenn man das LCD an den Prog-Port (PortB mein ich) hängt man die "Daten" die beim Brennen übertragen werden sieht. Wie muss dafür das Pinning sein? Und funzt das LCD dann auch vom Atmega aus (Wenn das Prog auf dem Atmega läuft) ohne Einschränkungen, wenn der Progger noch dranhängt? Oder gibts da Probleme? Ich hab momentan das LCD an PortC hängen, aber da blockier ich die Analogeingänge. Auf PortB könnte ich wenns da keine Probleme gibt am ehesten "Verzichten"
Was ich vorhabe ist: Ich will nen kleines Prog schreiben, das quasi als "Demo" für mein neues LCD-Modul nach eigenem Standart dienen soll. Es geht mir darum meinem Board mit Atmega8 per RS232 Signale zu geben, die auf dem LCD angezeigt werden. Es gibt 2 Arten von Signalen: Steuerbefehle und Text.
Steuerbefehle z.b. den Cursor ein. Text wird auf dem LCD angezeigt. Bisher hab ichs so gemacht:
Schleife:
Input Eingabe , Zweigabe Noecho
If Eingabe = "%CBlink" Then Goto Cursormode
If Eingabe = "%CNoBlink" Then Goto Cursormode
If Eingabe = "%COn" Then Goto Cursormode
If Eingabe = "%COff" Then Goto Cursormode
Home Upper
Lcd Eingabe
Home Lower
Lcd Zweigabe
Goto Schleife
Cursormode:
If Eingabe = "%CBlink" Then Cursor Blink
If Eingabe = "%CNoBlink" Then Cursor Noblink
If Eingabe = "%COn" Then Cursor On
If Eingabe = "%COff" Then Cursor Off
If Eingabe = "%CLS" Then Cls
Goto Schleife
Das sind jetzt nur die Scheifen um die's geht. Die Steuerbefehle haben nen % davor. Ich mach nen Input mit 2 Variablen. (Ich denke mal man macht das im Terminal so dass man eine Zeile eingibt, dann "Enter" drückt und den nächsten eingibt). Dann schau ich ob es sich um nen Steuerbefehl oder Text handelt. Wenn es Steuerbefehl ist springt er in die Schleife Cursormode. Da wird der entsprechende Befehl ausgeführt und dann gehts wieder zur Eingabe. Wenns kein Steuerbefehl ist, dann wird die erste Variable in der ersten Reihe meines 16*2-LCDs angezeigt und die zweite in der zweiten. Ich denke mal der Spass müsste so funktionieren. Ich hab bisher nur den Code geschrieben und bin ein paar 100 km von meinem Board entfernt. Was ich jetzt gerne tun würde (Ja, jetzt kommt endlich die Frage! :) ) ist: Nicht in der ersten Schleife JEDEN Steuerbefehl einzeln raussuchen sondern sofort beim "%" springen. Wie kann ich den ersten Char eines Strings raussuchen? Oder einen beliebigen String mit der Länge n | n > 0 aus einem String herausziehen? Geht das überhaupt?
Zweite Frage: Ich habe schon des öfteren gehört, dass wenn man das LCD an den Prog-Port (PortB mein ich) hängt man die "Daten" die beim Brennen übertragen werden sieht. Wie muss dafür das Pinning sein? Und funzt das LCD dann auch vom Atmega aus (Wenn das Prog auf dem Atmega läuft) ohne Einschränkungen, wenn der Progger noch dranhängt? Oder gibts da Probleme? Ich hab momentan das LCD an PortC hängen, aber da blockier ich die Analogeingänge. Auf PortB könnte ich wenns da keine Probleme gibt am ehesten "Verzichten"