Infineon Logo AIROC BTSDK v4.6 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages

Macros

#define HW_MIA_IR_CTL_EXTEND_IR_BUSY_STATUS_MASK   0x80
 
#define wiced_irtx_hook_callback(f1, f2, f3)   {wiced_irtx_processTxData_PreHook=f1;wiced_irtx_processTxData_PostHook=f2;wiced_irtx_processTxData_CompleteHook=f3;}
 

Typedefs

struct {
   UINT32   modulateFreq
 
   UINT8   clockSrcFreq
 
   UINT8   clockSrc
 
   BOOL8   invertOutput
 
   UINT8   extendedSettings
 
   UINT8   pwmDutyCycleHighCount
 
   UINT8   pwmDutyCycleLowCount
 
IR_TX_CLOCK_SETTING
 The 20730/20733 includes an IRTX Hw block. More...
 
typedef enum IR_TX_STATUS_TAG IR_TX_STATUS
 
typedef enum IR_TX_STATE_TAG IR_TX_STATE
 
typedef void(* Irtx_processTxData_HookFunc )(IR_TX_STATE state)
 

Enumerations

enum  { IR_TX_HW_FIFO_SIZE = 8 }
 
enum  {
  HW_MIA_IR_CTL_INIT_ENTRY_INDEX_MASK = 0x0700, HW_MIA_IR_CTL_INIT_ENTRY_INDEX_SHIFT = 8, HW_MIA_IR_CTL_RAW_DATA_MASK = 0x0040, HW_MIA_IR_CTL_RAW_DATA_SHIFT = 6,
  HW_MIA_IR_CTL_CARRIER_MODULATE_MASK = 0x0020, HW_MIA_IR_CTL_CARRIER_MODULATE_ENABLE = 0x0020, HW_MIA_IR_CTL_CARRIER_MODULATE_DISABLE = 0x0000, HW_MIA_IR_CTL_CARRIER_MODULATE_SHIFT = 5,
  HW_MIA_IR_CTL_MODULATE_CLK_SRC_MASK = 0x0010, HW_MIA_IR_CTL_MODULATE_CLK_SRC_ACLK0 = 0x0000, HW_MIA_IR_CTL_MODULATE_CLK_SRC_ACLK1 = 0x0010, HW_MIA_IR_CTL_MODULATE_CLK_SRC_SHIFT = 4,
  HW_MIA_IR_CTL_INVERT_OUTPUT_MASK = 0x0008, HW_MIA_IR_CTL_INVERT_OUTPUT_ENABLE = 0x0008, HW_MIA_IR_CTL_INVERT_OUTPUT_DISABLE = 0x0000, HW_MIA_IR_CTL_INVERT_OUTPUT_SHIFT = 3,
  HW_MIA_IR_CTL_RAW_BIT_SRC_FINAL_MASK = 0x0004, HW_MIA_IR_CTL_RAW_BIT_SRC_FINAL_CMD_BIT_15 = 0x0004, HW_MIA_IR_CTL_RAW_BIT_SRC_PRE_BIT = 0x0000, HW_MIA_IR_CTL_RAW_BIT_SRC_FINAL_SHIFT = 2,
  HW_MIA_IR_CTL_RAW_BIT_SRC_PRE_MASK = 0x0002, HW_MIA_IR_CTL_RAW_BIT_SRC_PRE_PUART_TXD = 0x0002, HW_MIA_IR_CTL_RAW_BIT_SRC_PRE_IR_CTL_6 = 0x0000, HW_MIA_IR_CTL_RAW_BIT_SRC_PRE_SHIFT = 1,
  HW_MIA_IR_CTL_RESET_MASK = 0x0001, HW_MIA_IR_CTL_RESET_ACTIVE = 0x0001, HW_MIA_IR_CTL_RESET_INACTIVE = 0x0000, HW_MIA_IR_CTL_RESET_SHIFT = 0,
  HW_MIA_IR_BUF_CTL_WRITE_ENABLE_ALL_MASK = 0x00FF0000, HW_MIA_IR_BUF_CTL_WRITE_ENABLE_ENTRY_0_SHIFT = 16, HW_MIA_IR_BUF_CTL_INT_ENABLE_ALL_MASK = 0x0000FF00, HW_MIA_IR_BUF_CTL_INT_ENABLE_ENTRY_0_SHIFT = 8,
  HW_MIA_IR_BUF_CTL_READY_BIT_ALL_MASK = 0x000000FF, HW_MIA_IR_BUF_CTL_READY_BIT_ENTRY_0_SHIFT = 0, HW_MIA_IR_CMD_IR_WAIT_TIME_MASK = 0x7FFF, HW_MIA_IR_CMD_IR_RAW_BIT_MASK = 0x8000,
  HW_MIA_IR_CMD0_FIFO_INDEX_MASK = 0x70000, HW_MIA_IR_CMD0_FIFO_INDEX_SHIFT = 16, HW_MIA_IR_INT_STATUS_ALL_MASK = 0x00FF, HW_MIA_IR_INT_STATUS_ENTRY_0_SHIFT = 0
}
 
enum  IR_TX_STATUS_TAG { IR_TRANSMIT_FAIL, IR_TRANSMIT_SUCCESS }
 
enum  IR_TX_STATE_TAG { IR_TX_IDLE, IR_TX_PAYLOAD, IR_TX_BUSY, IR_TX_DONE }
 
enum  {
  HW_MIA_IR_CTL_EXTEND_MODULATE_SRC_PWM0 = 0x00, HW_MIA_IR_CTL_EXTEND_MODULATE_SRC_PWM1 = 0x01, HW_MIA_IR_CTL_EXTEND_MODULATE_SRC_PWM2 = 0x02, HW_MIA_IR_CTL_EXTEND_MODULATE_SRC_PWM3 = 0x03,
  HW_MIA_IR_CTL_EXTEND_MODULATE_SRC_MASK = 0x03, HW_MIA_IR_CTL_EXTEND_ACTIVE_HIGH = 0x00, HW_MIA_IR_CTL_EXTEND_ACTIVE_LOW = 0x04, HW_MIA_IR_CTL_EXTEND_ACTIVE_MASK = 0x04,
  HW_MIA_IR_CTL_EXTEND_IDLE_LOW = 0x00, HW_MIA_IR_CTL_EXTEND_IDLE_HIGH = 0x08, HW_MIA_IR_CTL_EXTEND_IDLE_MASK = 0x08, HW_MIA_IR_CTL_EXTEND_IR_CYCLE_USEC = 0x00,
  HW_MIA_IR_CTL_EXTEND_IR_CYCLE_T = 0x10, HW_MIA_IR_CTL_EXTEND_IR_CYCLE_MASK = 0x10, HW_MIA_IR_CTL_EXTEND_ACLK0_BUSY_MASK = 0x80
}
 

Functions

void wiced_irtx_doneInterruptHandler (void)
 
void wiced_irtx_doneHandler (void)
 
void wiced_irtx_updateBufferControl (UINT32 readyUpdate)
 
void wiced_irtx_configure (IR_TX_CLOCK_SETTING irtxClockSet)
 
void wiced_irtx_init (void)
 
void wiced_irtx_processTxData (void)
 
void wiced_irtx_setIrTxPortPin (BYTE port, BYTE pin)
 
IR_TX_STATUS wiced_irtx_send_data (const UINT16 *sendBuff, UINT32 pktLen, IR_TX_CLOCK_SETTING irtxClockSet)
 
BOOL8 wiced_irtx_isAvailable (void)
 
void wiced_irtx_abortCurrentTransaction (void)
 

Variables

Irtx_processTxData_HookFunc wiced_irtx_processTxData_PreHook
 
Irtx_processTxData_HookFunc wiced_irtx_processTxData_PostHook
 
Irtx_processTxData_HookFunc wiced_irtx_processTxData_CompleteHook
 

Detailed Description

Typedef Documentation

typedef { ... } IR_TX_CLOCK_SETTING

The 20730/20733 includes an IRTX Hw block.

The IrTx HW can be used to transmit IR Data. This Class defines an IrTx driver that can be used by applications such as a Remote Controller app or other related applications to transmit IR commands to the Host.

To use the IRTX class:

(1) Get the IrTx class driver instance first.

example: IrTx *irTxDriver = IrTx::getInstance();

(2) Configure the IrTx Port and Pin to be used

example: BYTE port = 0; BYTE pin = 4; irTxDriver->setIrTxPortPin(port, pin);

(3) Transmit an IR Command using the senData function

example: irTxDriver->sendData(testCmdArray , pktLen, irtxClockSet);

Please refer to function description for more details.