Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .INCLUDE "TN85DEF.INC" ;ATTINY13 DEFINITIONS
- .DEF A = R16 ;GENERAL PURPOSE ACCUMULATOR
- .ORG 0000
- ON_RESET:
- SBI DDRB,0 ;SET PORTB0 FOR OUTPUT
- LDI A,0b0000_0001 ;SET TIMER PRESCALER TO /1024
- OUT TCCR0B,A
- MAIN_LOOP:
- SBI PINB,0 ;FLIP THE 0 BIT
- RCALL PAUSE ;WAIT
- RJMP MAIN_LOOP ;GO BACK AND DO IT AGAIN
- PAUSE:
- PLUPE: IN A,TIFR ;WAIT FOR TIMER
- ANDI A,0b0000_0010 ;(TOV0)
- BREQ PLUPE
- LDI A,0b0000_0010 ;RESET FLAG
- OUT TIFR,A ;NOTE: WRITE A 1 (NOT ZERO)
- RET
- ;-----------------------------------------------------------------------------------------------------
- .INCLUDE "TN85DEF.INC" ;ATTINY13 DEFINITIONS
- .DEF A = R16 ;GENERAL PURPOSE ACCUMULATOR
- .ORG 0000
- ON_RESET:
- SBI DDRB,0 ;SET PORTB0 FOR OUTPUT
- LDI A,0b0000_0001 ;SET TIMER PRESCALER TO /1024
- OUT TCCR0B,A
- MAIN_LOOP:
- SBI PINB,0 ;FLIP THE 0 BIT
- RCALL PAUSE ;WAIT
- RJMP MAIN_LOOP ;GO BACK AND DO IT AGAIN
- PAUSE:
- PLUPE: IN A,TIFR ;WAIT FOR TIMER
- ANDI A,0b0000_0010 ;(TOV0)
- BREQ PLUPE
- LDI A,0b0000_0010 ;RESET FLAG
- OUT TIFR,A ;NOTE: WRITE A 1 (NOT ZERO)
- RET
- waitForInPinHigh:
- sbic PORTB,2
- rjmp waitForInPinHigh
- ret
- waitForInPinLow:
- sbis PORTB,2
- rjmp waitForInPinLow
- ret
- startTimer:
- LDI A,0b0000_0001 ;SET TIMER PRESCALER TO /1024
- OUT TCCR0B,A
- ret
- timerLoop:
- IN A,TIFR ;WAIT FOR TIMER
- ANDI A,0b0000_0010 ;(TOV0)
- BREQ timerLoop
- LDI A,0b0000_0010 ;Push TOVO back down.RESET FLAG
- OUT TIFR,A ;NOTE: WRITE A 1 (NOT ZERO)
- ;if key pressed get out of loop and stop
- inc r18
- brne timerLoop
- inc r19
- brne timerloop
- inc r20
- rjmp timerloop
- RET
- stopTimer:
- LDI A,0b0000_000 ;SET TIMER PRESCALER TO /1024
- OUT TCCR0B,A
- ret
Advertisement
Add Comment
Please, Sign In to add comment