Subversion Repositories HomeAutomation

Rev

Rev 547 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. /**
  2.  * IR common driver, functions to be used in receiver and transmitter
  3.  *
  4.  * @date    2007-07-07
  5.  *
  6.  * @author  Anders Runeson
  7.  *  
  8.  */
  9.  
  10. /*-----------------------------------------------------------------------------
  11.  * Includes
  12.  *---------------------------------------------------------------------------*/
  13. #include <drivers/ir/ircommon.h>
  14. #include <avr/io.h>
  15.  
  16. /*-----------------------------------------------------------------------------
  17.  * Globals
  18.  *---------------------------------------------------------------------------*/
  19.  
  20. /*-----------------------------------------------------------------------------
  21.  * Prerequisites
  22.  *---------------------------------------------------------------------------*/
  23.  
  24.  
  25. /*-----------------------------------------------------------------------------
  26.  * Public Functions
  27.  *---------------------------------------------------------------------------*/
  28.  
  29.  
  30. //TODO: skriv doxygen-header som för de andra funktionerna
  31. void initTimer(void) {
  32.     //sätt upp timer
  33.     #if defined(__AVR_ATmega8__)
  34.     TCCR1B = (0<<CS12) | (1<<CS11) | (0<<CS10); // prescaler: 8
  35.     TIFR  |= (1<<TOV1);             // clear overflow flag.
  36.     TCNT1 = 0;
  37.     #endif
  38.     #if defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__)
  39.     TCCR1B = (0<<CS12) | (1<<CS11) | (0<<CS10); // prescaler: 8
  40.     TIFR1  |= (1<<TOV1);            // clear overflow flag.
  41.     TCNT1 = 0;
  42.     #endif
  43. }
  44.  
  45. //TODO: skriv doxygen-header som för de andra funktionerna
  46. uint8_t isTimerOvfl(void) {
  47.     #if defined(__AVR_ATmega8__)
  48.     if (TIFR  & (1<<TOV1)) return 1;
  49.     #endif
  50.     #if defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__)
  51.     if (TIFR1  & (1<<TOV1)) return 1;
  52.     #endif
  53.  
  54.     return 0;
  55. }
  56.  
  57. //TODO: skriv doxygen-header som för de andra funktionerna
  58. uint16_t getTimerVal(void) {
  59.     #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__)
  60.     return TCNT1;
  61.     #endif
  62. }
  63.  
  64. //TODO: skriv doxygen-header som för de andra funktionerna
  65. void setTimerVal(uint16_t value) {
  66.     #if defined(__AVR_ATmega8__)
  67.     TCNT1 = value;
  68.     TIFR |= (1<<TOV1);  // clear overflow flag.
  69.     #endif
  70.     #if defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__)
  71.     TCNT1 = value;
  72.     TIFR1 |= (1<<TOV1);  // clear overflow flag.
  73.     #endif
  74. }
  75.  
  76.