Browse Source

fmu-v5: fix timer config

sbg
Simone Guscetti 8 years ago committed by David Sidrane
parent
commit
ada48571d7
  1. 27
      src/drivers/boards/px4fmu-v5/px4fmu_timer_config.c
  2. 6
      src/drivers/stm32/drv_io_timer.c
  3. 3
      src/drivers/stm32/drv_io_timer.h

27
src/drivers/boards/px4fmu-v5/px4fmu_timer_config.c

@ -83,25 +83,24 @@ __EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = { @@ -83,25 +83,24 @@ __EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = {
.vectorno = STM32_IRQ_TIM12,
},
{
.base = STM32_TIM9_BASE,
.clock_register = STM32_RCC_APB2ENR,
.clock_bit = RCC_APB2ENR_TIM9EN,
.clock_freq = STM32_APB2_TIM9_CLKIN,
.base = STM32_TIM2_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB1ENR_TIM2EN,
.clock_freq = STM32_APB1_TIM2_CLKIN,
.first_channel_index = 8,
.last_channel_index = 8,
.last_channel_index = 10,
.handler = io_timer_handler3,
.vectorno = STM32_IRQ_TIM9,
.vectorno = STM32_IRQ_TIM2,
},
{
.base = STM32_TIM2_BASE,
.clock_register = STM32_RCC_APB1ENR,
.clock_bit = RCC_APB2ENR_TIM2EN,
.clock_freq = STM32_APB2_TIM2_CLKIN,
.first_channel_index = 9,
.last_channel_index = 9,
.base = STM32_TIM9_BASE,
.clock_register = STM32_RCC_APB2ENR,
.clock_bit = RCC_APB2ENR_TIM9EN,
.clock_freq = STM32_APB2_TIM9_CLKIN,
.first_channel_index = 11,
.last_channel_index = 11,
.handler = io_timer_handler4,
.vectorno = STM32_IRQ_TIM2,
.vectorno = STM32_IRQ_TIM9,
}
};

6
src/drivers/stm32/drv_io_timer.c

@ -232,6 +232,12 @@ int io_timer_handler3(int irq, void *context) @@ -232,6 +232,12 @@ int io_timer_handler3(int irq, void *context)
}
int io_timer_handler4(int irq, void *context)
{
return io_timer_handler(4);
}
static inline int validate_timer_index(unsigned timer)
{
return (timer < MAX_IO_TIMERS && io_timers[timer].base != 0) ? 0 : -EINVAL;

3
src/drivers/stm32/drv_io_timer.h

@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
#pragma once
__BEGIN_DECLS
/* configuration limits */
#define MAX_IO_TIMERS 4
#define MAX_IO_TIMERS 5
#define MAX_TIMER_IO_CHANNELS 8
#define MAX_LED_TIMERS 2
@ -112,6 +112,7 @@ __EXPORT int io_timer_handler0(int irq, void *context); @@ -112,6 +112,7 @@ __EXPORT int io_timer_handler0(int irq, void *context);
__EXPORT int io_timer_handler1(int irq, void *context);
__EXPORT int io_timer_handler2(int irq, void *context);
__EXPORT int io_timer_handler3(int irq, void *context);
__EXPORT int io_timer_handler4(int irq, void *context);
__EXPORT int io_timer_channel_init(unsigned channel, io_timer_channel_mode_t mode,
channel_handler_t channel_handler, void *context);

Loading…
Cancel
Save