Subversion Repositories HomeAutomation

Rev

Rev 1470 | Rev 1483 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. /**
  2.  * @defgroup infrared IR Driver Library
  3.  * @code #include <drivers/ir/transceiver/transceiver.h> @endcode
  4.  *
  5.  * @brief  
  6.  *
  7.  *
  8.  * @author  Andreas Fritiofson, Anders Runeson
  9.  * @date    2007
  10.  */
  11.  
  12. /**@{*/
  13.  
  14. #ifndef IRTRANSCEIVER_H_
  15. #define IRTRANSCEIVER_H_
  16.  
  17. /*-----------------------------------------------------------------------------
  18.  * Includes
  19.  *---------------------------------------------------------------------------*/
  20. #include <stdio.h>
  21.  
  22. /*-----------------------------------------------------------------------------
  23.  * Defines
  24.  *---------------------------------------------------------------------------*/
  25. #define IR_R_PORT   PORTB
  26. #define IR_R_PIN    PINB
  27. #define IR_R_DDR    DDRB
  28. #define IR_R_BIT    PB0 // Input Capture Pin
  29.  
  30. #define IR_T_PORT   PORTD
  31. #define IR_T_PIN    PIND
  32. #define IR_T_DDR    DDRD
  33. #define IR_T_BIT    PD6
  34.  
  35. #define MAX_NR_TIMES        101                                 //max ir pulses+pauses, used for dimensioning the buffer
  36.  
  37. #ifndef IRTRANS_NUM_IR_REC
  38. #define IRTRANS_NUM_IR_REC 1
  39. #endif
  40.  
  41. #ifndef IR_TRANS_CH0_MASK
  42. #define IR_TRANS_CH0_MASK PB0
  43. #endif
  44.  
  45. #define TRUE 1
  46. #define FALSE 0
  47.  
  48. /*-----------------------------------------------------------------------------
  49.  * Public Function Prototypes
  50.  *---------------------------------------------------------------------------*/
  51. void IrTransceiver_Init(void);
  52. void IrTransceiver_Receive_Start(uint16_t *buffer);
  53. uint8_t IrTransceiver_Receive_Poll(uint8_t *len);
  54. uint8_t IrTransceiver_Transmit(uint16_t *buffer, uint8_t length, uint8_t modfreq);
  55. uint8_t IrTransceiver_Transmit_Poll(void);
  56.  
  57. /**
  58.  * @brief Type of the callback function pointer
  59.  * parameters: channel, buffer, length
  60.  */
  61. typedef void (*irCallback_t)(uint8_t, uint16_t*, uint8_t);
  62.  
  63.  
  64. /*-----------------------------------------------------------------------------
  65.  * Private Function Prototypes
  66.  *---------------------------------------------------------------------------*/
  67.  
  68. void IrTransceiver_Store(uint8_t channel);
  69.  
  70. #endif /*IRTRANSCEIVER_H_*/
  71.