Hi,
I am trying to import IRMP library to my board. I use STM32103VET6 mcu
and standart peripheral library. For receiving IR signal i use 38Khz IR
receiver, VS1738. MCU clock frequency is 16Mhz, external clock. I use
PORTA, PIN_1 of STM32 for receiving port. When i send any IR signal from
any remote, i can not get data. My setups are below. Any advise ?
By the way i can not call "IRMP_DATA irmp_data;" in main, compiler gives
undecleared error, so i call it outside main.
1 | IRMP_DATA irmp_data;
|
2 | int main (void)
|
3 | {
|
4 |
|
5 | irmp_init();
|
6 | timer5_init();
|
7 |
|
8 | for (;;)
|
9 | {
|
10 | if (irmp_get_data (&irmp_data))
|
11 | {
|
12 | // ir signal decoded, do something here...
|
13 | }
|
14 | }
|
15 | }
|
1 | void TIM5_IRQHandler(void)
|
2 | {
|
3 |
|
4 | TIM_ClearITPendingBit(TIM5, TIM_IT_Update);
|
5 | (void) irmp_ISR();
|
6 |
|
7 | }
|
1 | uint32_t SysCtlClockGet(void)
|
2 | {
|
3 |
|
4 | RCC_ClocksTypeDef RCC_ClocksStatus;
|
5 | RCC_GetClocksFreq(&RCC_ClocksStatus);
|
6 | return RCC_ClocksStatus.SYSCLK_Frequency;
|
7 |
|
8 | }
|
1 | void timer5_init (void)
|
2 | {
|
3 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
|
4 | NVIC_InitTypeDef NVIC_InitStructure;
|
5 | RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
|
6 |
|
7 | TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
|
8 | TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
|
9 | TIM_TimeBaseStructure.TIM_Period = 999;
|
10 | TIM_TimeBaseStructure.TIM_Prescaler = 106;//((F_CPU / F_INTERRUPTS)/8) - 1;
|
11 | TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);
|
12 |
|
13 | TIM_ITConfig(TIM5, TIM_IT_Update, ENABLE);
|
14 |
|
15 | NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;
|
16 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
17 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
|
18 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
|
19 | NVIC_Init(&NVIC_InitStructure);
|
20 |
|
21 | TIM_Cmd(TIM5, ENABLE);
|
22 | }
|