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







Zitieren

Lesezeichen