Hallo! In den Anlagen hab ich die Source von meinem ersten kleine Programm. Es soll ungefähr 1 sekunde warten, bis sich die LEDs an PortB anschalten. (Mein Atmel ist mit 8 Mhz getaktet) Aber wenn ich dass Programm dann geladen hab und ich den Prozessor einschalte leuchten die LEDs sofort. Was mach ich falsch`? Gruß!
Naja, die Ausgänge des Ports ist ja per Initialisiserung erstmal auf 0. Da Du die LED wohl mit 0 schalten willst, mußt du zum Programmstart zunächst mal die Ausgänge auf 1 setzen. start: ldi temp, 0xFF out DDRB, temp out PORTB, temp
also wenn ich 0xFF auf DDRB ausgebe sind alle Pins als Ausgänge konfiguriert. Richtig? Aber wieso muss ich dann erstmal 0xFF auf PORTB ausgeben, um später alles auf null zu setzen? Gruß!
Ja, soweit ok. Da aber die Ausgänge "von Hause aus" erstmal auf 0 sind, leuchtet Deine LEDs sofort, da diese "Low-Aktiv" geschaltet werden (wie z.B hier im Tutorial). Das nehme ich zumindest an, da Du sie ja dann mit ldi temp, 0b00000000 out PORTB, temp nach einer Sekunde einschalten willst. Wenn Sie zum Programmstart erstaml aus sein sollen, mußt Du sie mit dem Ausgeben von 0xFF ausschalten. Das ganze Problem liegt also nicht bei Deine Zeitschleifen, die funktionieren so. Nur Du siehst nicht das Anschalten, weil die LEDs schon an sind. Gruß Ingo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.