Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .NOLIST
- #ifndef _TN13DEF_INC_
- .include "tn13def.inc"
- #endif
- ;.include "regs.inc"
- ;timers
- .equ CLK1024 = (1<<CS00) | (1<<CS02)
- ;ticks
- .equ T0MAXTICK = 2
- ;work
- .def t0tick = R22
- .def state = R21
- .org 0
- rjmp reset
- .org 0x0003
- rjmp TIMER0OVF
- .MACRO outi
- push R16
- ldi r16, @1
- out @0, r16
- pop R16
- .ENDMACRO
- ;==============================================================
- .macro show
- push R17
- OUTI PORTB, 1
- ; mov R17, state
- ; dec R17
- ; breq PC+3
- ; OUTI PORTB, (1 << 0)
- ; rjmp m1
- ; OUTI PORTB, (0 << 0)
- ; m1:
- pop R17
- .endm
- ;==============================================================
- ;ISR
- TIMER0OVF:
- OUTI PORTB, 1
- dec t0tick
- breq PC+2
- reti
- push R17
- ldi R17, 1
- eor state, R17
- ldi t0tick, T0MAXTICK
- pop R17
- reti
- ;==============================================================
- reset:
- ;RAM stack
- ldi R17, low(RAMEND)
- OUT SPL, R17
- ;PORTS
- OUTI DDRB, 0xFF
- OUTI PORTB, 0
- outi COM0A1, 1
- outi COM0A0, 0
- ;timers
- ;outi tccr0a, 0b10100011 ; режим fast pwm
- outi tccr0b, 0b0000010 ; делитель на 8
- ;outi gtccr, 0b00000001 ; сброс предделителя
- ;OUTI TCCR0A, 8
- ;init
- ldi state, 1
- ldi t0tick, T0MAXTICK
- sei
- ;==============================================================
- main:
- ;show
- breq main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement