Subversion Repositories HomeAutomation

Rev

Rev 1931 | Details | Compare with Previous | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
1465 arune 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
 
1866 arune 26
#ifndef MAX_NR_TIMES
27
#define MAX_NR_TIMES        127                                 //max ir pulses+pauses, used for dimensioning the buffer 
28
#endif
1465 arune 29
 
1472 arune 30
#define TRUE 1
31
#define FALSE 0
32
 
1494 arune 33
#ifndef IR_RX_ACTIVE_LOW
34
#define IR_RX_ACTIVE_LOW    1
35
#endif
36
 
37
#ifndef IR_TX_ACTIVE_LOW
38
#define IR_TX_ACTIVE_LOW    0
39
#endif
40
 
41
#ifndef IR_TX_ENABLE
42
#define IR_TX_ENABLE    0
43
#endif
44
 
45
#ifndef IR_RX_ENABLE
46
#define IR_RX_ENABLE    0
47
#endif
48
 
49
#ifndef IR_SUPPORTED_NUM_CHANNELS
50
#define IR_SUPPORTED_NUM_CHANNELS 3
51
#endif
52
 
1931 arune 53
#ifndef IR_RX_CONTINUOUS_MODE
54
#define IR_RX_CONTINUOUS_MODE   0
55
#endif
56
 
57
 
1853 myhrman 58
/**
59
 * @brief Type of the callback function pointer
60
 * parameters: channel, buffer, length
61
 */
2198 arune 62
typedef void (*irRxCallback_t)(uint8_t, uint16_t*, uint8_t, uint8_t);
1853 myhrman 63
typedef void (*irTxCallback_t)(uint8_t);
1494 arune 64
 
1853 myhrman 65
 
1465 arune 66
/*-----------------------------------------------------------------------------
67
 * Public Function Prototypes
68
 *---------------------------------------------------------------------------*/
1865 myhrman 69
int IrTransceiver_Transmit(uint8_t channel, uint16_t *buffer, uint8_t start, uint8_t length, uint16_t modfreqkHz);
1465 arune 70
 
1479 arune 71
void IrTransceiver_Init(void);
1483 arune 72
uint8_t IrTransceiver_GetStoreEnableRx(uint8_t channel);
73
void IrTransceiver_DisableRx(uint8_t channel);
74
void IrTransceiver_EnableRx(uint8_t channel);
75
void IrTransceiver_ResetRx(uint8_t channel);
1479 arune 76
 
1853 myhrman 77
void IrTransceiver_InitRxChannel(uint8_t channel, uint16_t *buffer, irRxCallback_t callback, uint8_t pcint_id, volatile uint8_t* port, volatile uint8_t* pin, volatile uint8_t* ddr,uint8_t nr, uint8_t pcint);
78
void IrTransceiver_DeInitRxChannel(uint8_t channel, uint8_t pcint_id, volatile uint8_t* port, volatile uint8_t* pin, volatile uint8_t* ddr,uint8_t nr, uint8_t pcint);
79
void IrTransceiver_InitTxChannel(uint8_t channel, irTxCallback_t callback, volatile uint8_t *port, volatile uint8_t *pin, volatile uint8_t *ddr,uint8_t nr, uint8_t pcint);
80
 
1483 arune 81
//void IrTransceiver_Init_RX_Channel(uint8_t channel, uint16_t *buffer, irCallback_t callback, uint8_t pcint_id, volatile uint8_t* port, volatile uint8_t* pin, volatile uint8_t* ddr,uint8_t nr, uint8_t pcint);
1479 arune 82
 
1865 myhrman 83
/* Active TX mod freq in kHz */
84
extern uint16_t drvIrTxModFreqkHz;
1465 arune 85
 
86
/*-----------------------------------------------------------------------------
87
 * Private Function Prototypes
88
 *---------------------------------------------------------------------------*/
89
 
90
void IrTransceiver_Store(uint8_t channel);
91
 
92
#endif /*IRTRANSCEIVER_H_*/