Hi Scotch,
bei Assembler kann ich dir da nicht sehr helfen da ich mit Bascom programmiere!
Evtl. hilft dir das Stück Code aus einer Lauflichtsteuerung was
!!! Keine Gewähr, ob es funzt!!! Ist nicht von mir!
Mußt Dir halt die Passagen raus suchen mit den Timern.
Dürfte aber kein Problem sein.
Code:
;Beginn des Programmcodes
reset: ldi r16,low(RAMEND)
out SPL,r16
ldi r16,0x00
out TCCR1A,r16 ;Timer 1 disconnect OC1 + PWM
ldi r16,0x03
out TCCR1B,r16 ;Timer 1 prescaling 1/64
ldi r16,T1Lval
out TCNT1L,r16 ;Timer low value
ldi r16,T1Hval
out TCNT1H,r16 ;Timer high value
ldi r16,0x80
out TIMSK,r16 ;Timer1 overflow enabled
sei ;Enable global Interrupts
ldi result,$ff ;Port B -> output
out DDRB,result
out DDRD,result ;Port D -> output
Startprog:
sei ;Enable global Interrupts
;Auswahl ob High oder Low geschoben wird
ldi Anzeige,$0 ;LED on (Low)
sec ;set Carry (H wird durch die Ports geschoben)
; ldi Anzeige,$ff ;LED off (High)
; clc ;clear Carry (L wird durch die Ports geschoben)
loop: out PORTB,Anzeige
out PORTD,Anzeige
rjmp loop ;Timing durch Interrupts
Lesezeichen