Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1. #ifndef AVR_CFG_H_
  2. #define AVR_CFG_H_
  3.  
  4. #if defined(__AVR_ATmega8__)
  5.  
  6. #define TIMEBASE_COUNTER TCNT0
  7. #define TIMEBASE_RELOAD (F_CPU / 1000 / 64)
  8. #define TIMEBASE_INIT()            \
  9.     TCNT0 = TIMEBASE_RELOAD;       \
  10.     TIFR  |= (1<<TOV0);            \
  11.     TIMSK |= (1<<TOIE0);           \
  12.     TCCR0 = (1<<CS01) | (1<<CS00);
  13. #define TIMEBASE_VECTOR TIMER0_OVF_vect
  14.  
  15. #elif defined(__AVR_ATmega88__)
  16.  
  17. #define TIMEBASE_COUNTER TCNT0
  18. #define TIMEBASE_RELOAD (F_CPU / 1000 / 64)
  19. #if (TIMEBASE_RELOAD > 255)
  20. # error System frequency too high for timebase prescaler 64.
  21. #endif
  22. #define TIMEBASE_INIT()            \
  23.     TCNT0 = TIMEBASE_RELOAD;       \
  24.     TIFR0  |= (1<<TOV0);           \
  25.     TIMSK0 |= (1<<TOIE0);          \
  26.     TCCR0B = (1<<CS01) | (1<<CS00);
  27. #define TIMEBASE_VECTOR TIMER0_OVF_vect
  28.  
  29. #else
  30. #error AVR specifics not defined!
  31. #endif
  32.  
  33. #endif /*AVR_CFG_H_*/
  34.