Beides erledigt, siehe unten
Hab ich einfach vom M16 PGM rüber kopiert und nicht darauf geachtet - ist jetzt berichtigt
Was meinst du damit? Kenne ich nicht anders und finde ich in anderen Programmen auch so.
Stimmt (schon). Ich hab den Wert erhäht, damit das delay sicher lang genug ist, hab aber den Text dazu nicht geändert.
ldi lcdd, 0x01 ;*
$01 löscht das Display, von cursor setzen auf Zeile1 Pos1 hab ich nichts gelesen!
$03 setzt zusätzlich den cursor auf Z1P1.
Und der Befehl ist der letzte der Init-Prozedur.
Wie schon geschrieben:
Es kommt in der ersten Zeile gar nichts zum Vorschein, dafür in der 2. Zeile sofort nach Anlegen der Spannung 16 Blöcke. Ob nun ein T24 in der Schaltung ist oder nicht. also auch ohne Init oder sonstiger Ansteuerung!
Wie meinst du das, bzw. worum gehts dir?
Wie auch schon geschrieben: ich hab einige verschiedene, kleinere Programme für den T13, den M8 und eine Heizungssteuerung für den M16 geschrieben (mit dem Texteditor), mit AVR umgewandelt und wenns nötig war mit debug getestet.
Im Testprogramm sind keine Ints definiert, weil nicht benötigt.
Wenn, dann mach ich es mit .org.
Das kommt dann beim M16.
Im Testprogramm nicht zutreffend - weder Int definiert noch in Verwendung
???? Tut mir leid, kann damit nichts anfangen
Mich verwirrt sowas nur.
Das mag für dich zutreffen, nicht für mich. Denn durch eine zugeordnete Benennung wird für mich ein Programm, speziell wenn es länger ist, besser lesbar. So weiß ich in den einzelnen Routinen (auch später, wenn eine Routine in eine Bibliothek gewandert ist) wozu das Register dient. Das ist in mir drin - kommt aus dem Großrechnerbereich (sieh unten) und von der Clipper-Programmierung.
Manchmal werden direkt veränderbare Register zu wenig, dann muss ich klarerweise in den SRAM "ausweichen". Wird aber, soweit möglich, vermieden.
Wenn wenig direkt veränderbare Register zur Verfügung stehen, dienen X,Y,Z bei mir als "Arbeitsregister", die ständiger Veränderung unterliegen. Sind einfacher zu schreiben als Rxx oder benannte. Zudem tu ich mir leichter, wenn ich 16 Bit benötige. Da XYZ vordefiniert und für mich eindeutig. Sie sind auch durch die Großschreibung leicht erkenntlich. Wenn genug Register zur Verfügung stehen, werden andere unterhalb XYZ bis R16 als Arbeitsregister verwendet. Und dann neben den namentlich (nahezu) fix zugeordneten immer mit "WRKx" (WoRKregister) definiert (bei euch meist als "tempx" o.ä.). Die Mnemonic, die ich meist bei den Namen verwende, kommt aus dem Großrechnerbereich (alles englisch). Ist eine ganz andere Welt, prägt aber. Daher auch mein meist gemischter Text D/E.
Aus oben genannten, jahrzehntelang prägenden Tätigkeiten erklärt sich auch mein Programmierstil. Somit auch mein Problem mit "fremden" Bibliotheken.
Man möge mir verzeihen!
Siehe oben. Der Befehl befindet sich am Ende der Initialisierung (=also fertig).
zu 1.: Siehe 1.2
zu 2.: von R0-R15
Gewisse Grundlagen sind mir bekannt.
Sonst hätte ich meine vorherigen Projekt nicht lösen können.
Werd ich mir genau ansehen.
Wird aber erst schlagend, wenn das Test-Programm die Testphase bestanden hat und dann mit Mega16 voll programmiert wird ...
Hast recht.
Wurden eliminiert.
Antworten zu Text3 siehe Anhang
Um das Problem mit den Wartezeiten (delays) zu eliminieren, hab ich auf "Mechanik" umgestellt. Statt Wartezeiten in Routinen zu definieren verwende ich nun die "wait_key"-Routine. Die Wartezeit wird somit per "Taste" abgefragt. Händisch ist man sicher nicht zu schnell
Man sollte, da die Befehle nun per Tastendruck weitergeschaltet werden, auch jeden Schritt auf dem LCD verfolgen können.
Und trotzdem funktioniert ... NICHTS!
Nach Power on (ob LCD alleine oder an T24 angeschlossen):
1. Zeile: dunkel/leer
2. Zeile: voll mit Blöcken (aber nur, wenn Kontrast fast auf 0V), also keine "Anzeige".
Das bleibt unverändert, auch wenn mit der Taste weiter geschaltet wird.
Lesezeichen