Hi,
ich habe folgendes Programm geschrieben und in einen ATtiny 12L
geschrieben. Zusätzlich hab ich das Fuse-Bit "RSTDISBL" für den
internen reset aktiviert.
Das Programm soll folgendes machen:
Wenn Taster 1 (an PB0) gedrückt wird, ist NUR PB3 high
Wenn Taster 2 (an PB1) gedrückt wird, ist NUR PB4 high
Wenn Taster 3 (an PB2) gedrückt wird, ist NUR PB5 high
Also eine Entprellung ist überflüssig. Trotzdem funktionieren nur
Taster 1 und 2. Wenn ich Taster 3 betätige, ist kein ausgang high. Hab
es zur Sicherheit auch noch nachgemessen.
Es handelt sich um diese Programm:
;--------------------------------------
;Eingangswahl
;--------------------------------------
; Datum: 2.5.06
; Version: 1.0
; Controller: ATtiny 12L
;--------------------------------------
.include "tn12def.inc"
;--------------------------------------
; Interruptvektoren
;--------------------------------------
rjmp main
reti
reti
reti
reti
reti
;--------------------------------------
; Main
;--------------------------------------
main: ldi r16 , 0b11111000
out DDRB , r16
ldi r16 , 0b00000111
out PORTB , r16
mainloop: wdr
in r17 , PINB
sbrs r17 , 0
rjmp taster1
sbrs r17 , 1
rjmp taster2
sbrs r17 , 2
rjmp taster3
rjmp mainloop
taster1: ldi r16 , 0b00001111
out PORTB , r16
rjmp mainloop
taster2: ldi r16 , 0b00010111
out PORTB , r16
rjmp mainloop
taster3: ldi r16 , 0b00100111
out PORTB , r16
rjmp mainloop
Ich nutze den ATtiny 12L, AVR Studio zum Programmieren und PonyProg zum
Brennen.
Was fehlt, bzw was hab ich falsch gemacht?
Mfg
Engel
> Was fehlt, bzw was hab ich falsch gemacht?
Du hast im Datenblatt Seite 5 Tabelle 2 Fußnote 4 nicht gelesen...
...
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.