added irext decoder support for STM8:
This commit is contained in:
@@ -51,7 +51,6 @@
|
||||
|
||||
#define BLOCK_BYTES 16
|
||||
|
||||
|
||||
/* prototypes */
|
||||
static decode_control_block_t dccb =
|
||||
{
|
||||
@@ -90,11 +89,11 @@ static void HandleBinCategory();
|
||||
static void HandleCommand();
|
||||
static void PrepareDecoding();
|
||||
|
||||
|
||||
static void ParseCommand(uint8_t* data, uint16_t len);
|
||||
static void TransportDataToUart(uint8_t* data, uint16_t len);
|
||||
static void WriteBytes(uint8_t *data, uint16_t len);
|
||||
|
||||
|
||||
#if defined UART_DEFRAGMENT
|
||||
static void start_uart_cd(__IO uint32_t nTime);
|
||||
static void stop_uart_receive();
|
||||
@@ -102,14 +101,83 @@ static void stop_uart_receive();
|
||||
|
||||
/* local vars */
|
||||
|
||||
/* test mode */
|
||||
#if defined TEST_MODE
|
||||
#define TEST_BIN_SIZE 568
|
||||
const uint8_t ac_code[568] =
|
||||
{
|
||||
0x1D, 0x00, 0x00, 0x09, 0x00, 0x10, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0x33, 0x00, 0xFF, 0xFF, 0x34,
|
||||
0x00, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x76, 0x00, 0x7E, 0x01, 0xA6, 0x01, 0xCC, 0x01, 0xFF, 0xFF, 0xDC, 0x01, 0xE9, 0x01, 0xF6,
|
||||
0x01, 0xF8, 0x01, 0xFA, 0x01, 0xFC, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x33, 0x31, 0x30, 0x30, 0x2C,
|
||||
0x39, 0x31, 0x30, 0x30, 0x35, 0x30, 0x30, 0x2C, 0x35, 0x30, 0x30, 0x35, 0x30, 0x30, 0x2C, 0x31,
|
||||
0x35, 0x30, 0x30, 0x36, 0x26, 0x35, 0x36, 0x30, 0x2C, 0x32, 0x35, 0x30, 0x30, 0x2C, 0x33, 0x30,
|
||||
0x30, 0x30, 0x2C, 0x39, 0x30, 0x30, 0x30, 0x7C, 0x2D, 0x31, 0x26, 0x35, 0x30, 0x30, 0x31, 0x30,
|
||||
0x30, 0x31, 0x30, 0x30, 0x31, 0x42, 0x32, 0x30, 0x36, 0x43, 0x30, 0x30, 0x38, 0x33, 0x32, 0x30,
|
||||
0x39, 0x41, 0x46, 0x30, 0x41, 0x37, 0x31, 0x30, 0x42, 0x30, 0x30, 0x30, 0x43, 0x31, 0x31, 0x30,
|
||||
0x44, 0x43, 0x30, 0x30, 0x45, 0x30, 0x32, 0x39, 0x32, 0x30, 0x46, 0x30, 0x30, 0x30, 0x30, 0x30,
|
||||
0x30, 0x46, 0x30, 0x30, 0x31, 0x31, 0x32, 0x41, 0x46, 0x37, 0x31, 0x30, 0x30, 0x31, 0x31, 0x46,
|
||||
0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x30, 0x34, 0x43, 0x35,
|
||||
0x30, 0x30, 0x46, 0x35, 0x38, 0x35, 0x43, 0x30, 0x32, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30,
|
||||
0x46, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x33, 0x30, 0x39, 0x34,
|
||||
0x30, 0x34, 0x34, 0x30, 0x30, 0x34, 0x43, 0x35, 0x30, 0x30, 0x46, 0x35, 0x38, 0x35, 0x43, 0x30,
|
||||
0x34, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x46, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35,
|
||||
0x38, 0x35, 0x43, 0x30, 0x35, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x46, 0x34, 0x43, 0x35,
|
||||
0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x36, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x430,
|
||||
0x45, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x37, 0x30, 0x39, 0x34,
|
||||
0x30, 0x34, 0x34, 0x30, 0x30, 0x34, 0x43, 0x35, 0x30, 0x30, 0x46, 0x35, 0x38, 0x35, 0x43, 0x30,
|
||||
0x38, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x46, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35,
|
||||
0x38, 0x35, 0x43, 0x30, 0x39, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x46, 0x34, 0x43, 0x35,
|
||||
0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x41, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30,
|
||||
0x45, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x42, 0x30, 0x39, 0x34,
|
||||
0x30, 0x34, 0x34, 0x30, 0x46, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30,
|
||||
0x43, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x45, 0x34, 0x43, 0x35, 0x30, 0x30, 0x45, 0x35,
|
||||
0x38, 0x35, 0x43, 0x30, 0x44, 0x30, 0x39, 0x34, 0x30, 0x34, 0x34, 0x30, 0x45, 0x34, 0x43, 0x35,
|
||||
0x30, 0x30, 0x45, 0x35, 0x38, 0x35, 0x43, 0x30, 0x45, 0x30, 0x33, 0x36, 0x30, 0x36, 0x34, 0x30,
|
||||
0x31, 0x30, 0x33, 0x36, 0x30, 0x36, 0x34, 0x30, 0x34, 0x30, 0x33, 0x36, 0x30, 0x36, 0x34, 0x30,
|
||||
0x30, 0x30, 0x33, 0x36, 0x30, 0x36, 0x34, 0x30, 0x33, 0x30, 0x33, 0x36, 0x30, 0x36, 0x34, 0x30,
|
||||
0x32, 0x30, 0x33, 0x36, 0x34, 0x36, 0x38, 0x30, 0x31, 0x30, 0x33, 0x36, 0x34, 0x36, 0x38, 0x30,
|
||||
0x35, 0x30, 0x36, 0x36, 0x34, 0x36, 0x38, 0x30, 0x39, 0x35, 0x38, 0x35, 0x43, 0x30, 0x38, 0x30,
|
||||
0x33, 0x36, 0x34, 0x36, 0x38, 0x30, 0x42, 0x30, 0x33, 0x34, 0x38, 0x34, 0x43, 0x30, 0x41, 0x30,
|
||||
0x33, 0x34, 0x38, 0x34, 0x43, 0x30, 0x46, 0x54, 0x26, 0x30, 0x2C, 0x31, 0x7C, 0x53, 0x26, 0x31,
|
||||
0x2C, 0x32, 0x2C, 0x33, 0x54, 0x26, 0x30, 0x2C, 0x31, 0x7C, 0x53, 0x26, 0x31, 0x2C, 0x32, 0x2C,
|
||||
0x33, 0x4E, 0x41, 0x4E, 0x41, 0x4E, 0x41, 0x31
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
void main(void)
|
||||
{
|
||||
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
|
||||
|
||||
#if defined TEST_MODE
|
||||
// Init GPIO
|
||||
init_GPIO();
|
||||
// Init UART
|
||||
init_UART();
|
||||
|
||||
int i = 0;
|
||||
|
||||
dccb.ir_state = IR_STATE_READY;
|
||||
dccb.ir_type = IR_TYPE_AC;
|
||||
dccb.source_code_length = TEST_BIN_SIZE;
|
||||
memset(dccb.source_code, BINARY_SOURCE_SIZE_MAX, 0x00);
|
||||
for (i = 0; i < dccb.source_code_length; i++)
|
||||
{
|
||||
dccb.source_code[i] = ac_code[i];
|
||||
}
|
||||
|
||||
printf("decoding ac\n");
|
||||
|
||||
PrepareDecoding();
|
||||
|
||||
while(1)
|
||||
{
|
||||
;
|
||||
}
|
||||
#else
|
||||
// Init GPIO
|
||||
init_GPIO();
|
||||
// Init UART
|
||||
init_UART();
|
||||
|
||||
@@ -123,21 +191,9 @@ void main(void)
|
||||
#endif
|
||||
IRext_processUartMsg();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/* initialization */
|
||||
void deinit_GPIO()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void init_GPIO()
|
||||
{
|
||||
GPIO_Init(IR_IO_PORT, (GPIO_Pin_TypeDef)(IR_PIN), GPIO_MODE_OUT_PP_HIGH_FAST);
|
||||
}
|
||||
|
||||
|
||||
void init_UART()
|
||||
{
|
||||
UART3_DeInit();
|
||||
@@ -150,6 +206,17 @@ void init_UART()
|
||||
#endif
|
||||
}
|
||||
|
||||
/* initialization */
|
||||
void deinit_GPIO()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void init_GPIO()
|
||||
{
|
||||
GPIO_Init(IR_IO_PORT, (GPIO_Pin_TypeDef)(IR_PIN), GPIO_MODE_OUT_PP_HIGH_FAST);
|
||||
}
|
||||
|
||||
void init_Timer4()
|
||||
{
|
||||
/* TIM4 configuration:
|
||||
@@ -431,11 +498,8 @@ static void WriteBytes(uint8_t *data, uint16_t len)
|
||||
TransportDataToUart(data, len);
|
||||
}
|
||||
|
||||
|
||||
/* helper functions */
|
||||
#ifdef USE_FULL_ASSERT
|
||||
|
||||
|
||||
void assert_failed(uint8_t* file, uint32_t line)
|
||||
{
|
||||
while (1)
|
||||
|
||||
Reference in New Issue
Block a user