Hallo,
ich beschäftige mich seit ein paar Tagen damit einen ATtiny13 zu
programmieren. Mal abgesehen von ein paar Anfängerfehlern (Reset als
Ein-/Ausgang & Fusebitspielereien), die ich jetzt lasse, habe ich ein
Problem:
Ich habe ein simples Programm, welches nicht läuft und weiss nicht,
warum.
Ich benutze den Programmieradapter von lancos & PonyProg.
Das Programm soll -erstmal- einfach nur 2 LED's über Taster
Ein-/Ausschalten.
Ich hoffe mir kann jemand helfen.
Programm:
.INCLUDE "C:\AVR\Test\tn13def.inc"
;
;Initialisierung;
;
cbi DDRB,0
cbi DDRB,1 ;Port 0+1 Eingänge
sbi DDRB,3
sbi DDRB,4 ;Port 3+4 Ausgänge
sbi PORTB,0
sbi PORTB,1 ;Pull-ups eingeschaltet
;
main:
sbic PORTB,0
cbi PORTB,3
sbic PORTB,1
cbi PORTB,4
sbis PORTB,0
sbi PORTB,3
sbis PORTB,1
sbi PORTB,4
rjmp main
end:
sbic portb fragt nur den Zustand des port-FF's ab, aber nicht den
Zustand des port-Pins. Der Pin kann extern auf 1 oder 0 geschaltet
werden, der Befehl sbic portb,x erkennt das nicht.
Es muss der Zustand des Pins abgefragt werden, das geschieht z.B durch
sbic pinb,x
Danke schon einmal für die antworten!
Das lustige ist, dass es im Simulator funktioniert?! Ich hatte irgendwo
im Datenblatt gelesen, dass wenn man die Port-Pins abfragt, der Status
grundsätzlich gewechselt wird. Irgendsowas hatte ich schon mal gesehen,
wo ich damit rumprobiert hatte, darum habe ich das gelassen... ich werde
mich nochmal daransetzen.
Hallo schrieb:
> Vielleicht sollte man die Eingänge entprellen, wenn Taster daran> angschlossen sind. Was ich einfach mal vermute.
Die Eingänge brauche ich nicht entprellen, da ich mir ein Testlayout
geätzt habe. Die werden mit Jumpern gesetzt :)
Ich hatte vorhin leider nicht genug Zeit das mit den PIN-Abfragen zu
testen.
Das umgeschriebene probiere ich morgen bei der Arbeit mal aus (da habe
ich leider meinen Adapter liegen lassen).
Wenn ich das richtig verstehe brauche ich die Eingänge gar nicht
definieren und sie sind Standartmäßig 0? Wäre logisch, da ich das
Register ja quasi nicht beschrieben habe...
Die Pfadangabe hatte ich noch drin, weil ich versuchen wollte, ob
Ponyprog evtl. die Datei nicht findet...
Und was ich immer noch nicht verstehe: Warum funktioniert alles im
Simulator so schön?
Danke an alle, die mich unterstützen!
Vielen Dank an Martin.
Das Programm funktioniert so. Das Problem ist nur: Im Simulator vom
AVR-Studio funktioniert es nicht!? Da werden keine Bits im PIN-Register
angezeigt... Und warum funktioniert das, was im Simulator funktioniert,
nicht in der richtigen Schaltung?