timer1.s 834 B

12345678910111213141516171819202122232425262728293031323334353637
  1. ;Incs and Defs----------------------------------------------------------
  2. .include "atm328p.inc"
  3. .include "global.inc"
  4. ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  5. ;Timer-Reset
  6. .global timer1_reset
  7. timer1_reset:
  8. sts TCCR1A, false ;clear Registers
  9. sts TCCR1B, false
  10. sts TCCR1C, false
  11. sts TCNT1H, false
  12. sts TCNT1L, false
  13. sts TIMSK1, false
  14. sts timer1_cnt, false ;set Variables
  15. sts timer1_bool, false
  16. ret
  17. ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  18. ;Overflow-Interrupt
  19. .global timer1_OVF
  20. timer1_OVF:
  21. push timer1_r
  22. lds timer1_r, timer1_cnt ;Timer-Scaling
  23. inc timer1_r
  24. lds spi_r, timer1_MAX
  25. cp timer1_r, spi_r
  26. brne .+6
  27. clr timer1_r ;timed instructions
  28. sts timer1_bool, true
  29. sts timer1_cnt, timer1_r
  30. pop timer1_r
  31. reti