Danke! Das ist der Fehler. Toggle Pind.1 ändert nicht den Ausgang. Toggle Portd.1 ist richtig.
Danke! Das ist der Fehler. Toggle Pind.1 ändert nicht den Ausgang. Toggle Portd.1 ist richtig.
Hmmmmm, grübelgrübel, seltsam - wenn der Bascom-Compiler so reagiert. Laut Datenblatt wird nämlich ein Pin getoggelt, wenn eine logische 1 ins PIN-Register geschrieben wird. Ein Effekt, der sicher nicht ohne Absicht von den Hardcore-Programmierern eingebaut wurde.
Zitat von Atmel-Dokumentation 8272D–AVR–05/12 auf S. 72 unten
Ciao sagt der JoeamBerg
Das Tooglen des Ausgangs über das schreiben einer 1 in das PIN Register geht nur bei neueren AVRs, der mega16 hat die Funktion noch nicht.
Auch würde Toggle Pind.1 auch nur eine 1 Schreiben, falls da vorher eine 0 im Register Stand - zurück von 1 auf 0 geht es damit nicht, auch bei einem neueren µC.
Bei einem neueren µC wie z.B. Mega164 könnte man statt Toggle Portd.1 auch SET Pind.1 benutzen. Das setzt aber zusätzlich voraus das das IO Register Pind eine niedrige Adresse hat, so das es per SBI erreichbar ist. Das ist für die PORTs in der Regel gegeben.
Danke für die Korrektur. Ich sollte halt besser nicht kommentieren, wenn ich den exakten Controller noch nie benutzt hatte - sorry.Das Tooglen des Ausgangs ... nur bei neueren AVRs, der mega16 hat die Funktion noch nicht ...
Ciao sagt der JoeamBerg
Lesezeichen