1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

Merge pull request #1756 from thomaseichinger/welq-fix

cpu/stm32f: boards/iot-lab_M3: cleanup and fixes
This commit is contained in:
Thomas Eichinger 2014-10-13 11:58:46 +02:00
commit 86c85d86e8
5 changed files with 144 additions and 164 deletions

View File

@ -112,7 +112,7 @@
/** /**
* @brief GPIO configuration * @brief GPIO configuration
*/ */
#define GPIO_NUMOF 16 #define GPIO_NUMOF 15
#define GPIO_0_EN 1 #define GPIO_0_EN 1
#define GPIO_1_EN 1 #define GPIO_1_EN 1
#define GPIO_2_EN 1 #define GPIO_2_EN 1
@ -128,139 +128,119 @@
#define GPIO_12_EN 1 #define GPIO_12_EN 1
#define GPIO_13_EN 1 #define GPIO_13_EN 1
#define GPIO_14_EN 1 #define GPIO_14_EN 1
#define GPIO_15_EN 0 /* not configured */
#define GPIO_IRQ_PRIO 1 #define GPIO_IRQ_PRIO 1
/* IRQ config */ /**
#define GPIO_IRQ_0 GPIO_0 * @brief IRQ config
#define GPIO_IRQ_1 GPIO_1 *
#define GPIO_IRQ_2 GPIO_0 /* not configured */ * These defines are used for the backmapping in the matching interrupt
#define GPIO_IRQ_3 GPIO_0 /* not configured */ * service routines to call the correct callbacks.
#define GPIO_IRQ_4 GPIO_2 * GPIO_IRQ_x where x matches the value defined by GPIO_y_PIN
#define GPIO_IRQ_5 GPIO_3 */
#define GPIO_IRQ_6 GPIO_4 #define GPIO_IRQ_1 GPIO_13
#define GPIO_IRQ_2 GPIO_14
#define GPIO_IRQ_3 GPIO_0
#define GPIO_IRQ_4 GPIO_12
#define GPIO_IRQ_5 GPIO_8
#define GPIO_IRQ_6 GPIO_9
#define GPIO_IRQ_7 GPIO_5 #define GPIO_IRQ_7 GPIO_5
#define GPIO_IRQ_8 GPIO_0 /* not configured */ #define GPIO_IRQ_8 GPIO_1
#define GPIO_IRQ_9 GPIO_0 /* not configured */ #define GPIO_IRQ_9 GPIO_4
#define GPIO_IRQ_10 GPIO_6
#define GPIO_IRQ_11 GPIO_7 #define GPIO_IRQ_11 GPIO_7
#define GPIO_IRQ_12 GPIO_4 #define GPIO_IRQ_12 GPIO_2
#define GPIO_IRQ_13 GPIO_9 #define GPIO_IRQ_13 GPIO_9
#define GPIO_IRQ_14 GPIO_10 #define GPIO_IRQ_14 GPIO_10
#define GPIO_IRQ_15 GPIO_11
/* GPIO channel 0 config */ /* GPIO channel 0 config */
#define GPIO_0_PORT GPIOA /* Used for user button 1 */ #define GPIO_0_PORT GPIOA /* Used for user button 1 */
#define GPIO_0_PIN 3 #define GPIO_0_PIN 3
#define GPIO_0_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_0_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_0_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI3_PA) #define GPIO_0_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI3_PA)
#define GPIO_0_EXTI_LINE 4 #define GPIO_0_IRQ EXTI3_IRQn
#define GPIO_0_IRQ EXTI4_IRQn
/* GPIO channel 1 config */ /* GPIO channel 1 config */
#define GPIO_1_PORT GPIOA #define GPIO_1_PORT GPIOA
#define GPIO_1_PIN 8 #define GPIO_1_PIN 8
#define GPIO_1_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_1_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_1_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PA) #define GPIO_1_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PA)
#define GPIO_1_EXTI_LINE 4 #define GPIO_1_IRQ EXTI9_5_IRQn
#define GPIO_1_IRQ EXTI4_IRQn
/* GPIO channel 2 config */ /* GPIO channel 2 config */
#define GPIO_2_PORT GPIOA #define GPIO_2_PORT GPIOA
#define GPIO_2_PIN 12 #define GPIO_2_PIN 12
#define GPIO_2_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_2_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_2_EXTI_CFG() (AFIO->EXTICR[3] |= AFIO_EXTICR4_EXTI12_PA) #define GPIO_2_EXTI_CFG() (AFIO->EXTICR[3] |= AFIO_EXTICR4_EXTI12_PA)
#define GPIO_2_EXTI_LINE 4 #define GPIO_2_IRQ EXTI15_10_IRQn
#define GPIO_2_IRQ EXTI4_IRQn
/* GPIO channel 3 config */ /* GPIO channel 3 config */
#define GPIO_3_PORT GPIOB #define GPIO_3_PORT GPIOB
#define GPIO_3_PIN 8 #define GPIO_3_PIN 8
#define GPIO_3_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPBEN) #define GPIO_3_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPBEN)
#define GPIO_3_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PB) #define GPIO_3_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PB)
#define GPIO_3_EXTI_LINE 4 #define GPIO_3_IRQ EXTI9_5_IRQn
#define GPIO_3_IRQ EXTI4_IRQn
/* GPIO channel 4 config */ /* GPIO channel 4 config */
#define GPIO_4_PORT GPIOB #define GPIO_4_PORT GPIOB
#define GPIO_4_PIN 9 #define GPIO_4_PIN 9
#define GPIO_4_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPBEN) #define GPIO_4_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPBEN)
#define GPIO_4_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI9_PB) #define GPIO_4_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI9_PB)
#define GPIO_4_EXTI_LINE 4 #define GPIO_4_IRQ EXTI9_5_IRQn
#define GPIO_4_IRQ EXTI4_IRQn
/* GPIO channel 5 config */ /* GPIO channel 5 config */
#define GPIO_5_PORT GPIOC #define GPIO_5_PORT GPIOC
#define GPIO_5_PIN 7 #define GPIO_5_PIN 7
#define GPIO_5_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN) #define GPIO_5_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_5_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI7_PC) #define GPIO_5_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI7_PC)
#define GPIO_5_EXTI_LINE 4 #define GPIO_5_IRQ EXTI9_5_IRQn
#define GPIO_5_IRQ EXTI4_IRQn
/* GPIO channel 6 config */ /* GPIO channel 6 config */
#define GPIO_6_PORT GPIOC #define GPIO_6_PORT GPIOC
#define GPIO_6_PIN 8 #define GPIO_6_PIN 8
#define GPIO_6_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN) #define GPIO_6_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_6_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PC) #define GPIO_6_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI8_PC)
#define GPIO_6_EXTI_LINE 4 #define GPIO_6_IRQ EXTI9_5_IRQn
#define GPIO_6_IRQ EXTI3_IRQn
/* GPIO channel 7 config */ /* GPIO channel 7 config */
#define GPIO_7_PORT GPIOC #define GPIO_7_PORT GPIOC
#define GPIO_7_PIN 11 #define GPIO_7_PIN 11
#define GPIO_7_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN) #define GPIO_7_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_7_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI11_PC) #define GPIO_7_EXTI_CFG() (AFIO->EXTICR[2] |= AFIO_EXTICR3_EXTI11_PC)
#define GPIO_7_EXTI_LINE 4 #define GPIO_7_IRQ EXTI15_10_IRQn
#define GPIO_7_IRQ EXTI3_IRQn
/* GPIO channel 8 config */ /* GPIO channel 8 config */
#define GPIO_8_PORT GPIOA #define GPIO_8_PORT GPIOA
#define GPIO_8_PIN 5 #define GPIO_8_PIN 5
#define GPIO_8_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_8_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_8_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI5_PA) #define GPIO_8_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI5_PA)
#define GPIO_8_EXTI_LINE 4 #define GPIO_8_IRQ EXTI9_5_IRQn
#define GPIO_8_IRQ EXTI4_IRQn
/* GPIO channel 9 config */ /* GPIO channel 9 config */
#define GPIO_9_PORT GPIOA #define GPIO_9_PORT GPIOA
#define GPIO_9_PIN 6 #define GPIO_9_PIN 6
#define GPIO_9_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_9_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_9_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI6_PA) #define GPIO_9_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI6_PA)
#define GPIO_9_EXTI_LINE 4 #define GPIO_9_IRQ EXTI9_5_IRQn
#define GPIO_9_IRQ EXTI4_IRQn
/* GPIO channel 10 config */ /* GPIO channel 10 config */
#define GPIO_10_PORT GPIOA #define GPIO_10_PORT GPIOA
#define GPIO_10_PIN 7 #define GPIO_10_PIN 7
#define GPIO_10_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_10_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_10_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI7_PA) #define GPIO_10_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI7_PA)
#define GPIO_10_EXTI_LINE 4 #define GPIO_10_IRQ EXTI9_5_IRQn
#define GPIO_10_IRQ EXTI4_IRQn
/* GPIO channel 11 config */ /* GPIO channel 11 config */
#define GPIO_11_PORT GPIOA #define GPIO_11_PORT GPIOA
#define GPIO_11_PIN 4 #define GPIO_11_PIN 4
#define GPIO_11_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_11_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_11_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI4_PA) #define GPIO_11_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI4_PA)
#define GPIO_11_EXTI_LINE 4
#define GPIO_11_IRQ EXTI4_IRQn #define GPIO_11_IRQ EXTI4_IRQn
/* GPIO channel 12 config */ /* GPIO channel 12 config */
#define GPIO_12_PORT GPIOC #define GPIO_12_PORT GPIOC
#define GPIO_12_PIN 4 #define GPIO_12_PIN 4
#define GPIO_12_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN) #define GPIO_12_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_12_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI4_PC) #define GPIO_12_EXTI_CFG() (AFIO->EXTICR[1] |= AFIO_EXTICR2_EXTI4_PC)
#define GPIO_12_EXTI_LINE 4
#define GPIO_12_IRQ EXTI4_IRQn #define GPIO_12_IRQ EXTI4_IRQn
/* GPIO channel 13 config */ /* GPIO channel 13 config */
#define GPIO_13_PORT GPIOC #define GPIO_13_PORT GPIOC
#define GPIO_13_PIN 1 #define GPIO_13_PIN 1
#define GPIO_13_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN) #define GPIO_13_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_13_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI1_PC) #define GPIO_13_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI1_PC)
#define GPIO_13_EXTI_LINE 4 #define GPIO_13_IRQ EXTI1_IRQn
#define GPIO_13_IRQ EXTI4_IRQn
/* GPIO channel 14 config */ /* GPIO channel 14 config */
#define GPIO_14_PORT GPIOA #define GPIO_14_PORT GPIOA
#define GPIO_14_PIN 2 #define GPIO_14_PIN 2
#define GPIO_14_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN) #define GPIO_14_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPAEN)
#define GPIO_14_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI2_PA) #define GPIO_14_EXTI_CFG() (AFIO->EXTICR[0] |= AFIO_EXTICR1_EXTI2_PA)
#define GPIO_14_EXTI_LINE 4 #define GPIO_14_IRQ EXTI2_IRQn
#define GPIO_14_IRQ EXTI4_IRQn
/* GPIO channel 15 config */
#define GPIO_15_PORT GPIOC
#define GPIO_15_PIN 15
#define GPIO_15_CLKEN() (RCC->APB2ENR |= RCC_APB2ENR_IOPCEN)
#define GPIO_15_EXTI_CFG() (AFIO->EXTICR[3] |= AFIO_EXTICR4_EXTI15_PC)
#define GPIO_15_EXTI_LINE 4
#define GPIO_15_IRQ EXTI4_IRQn
/** /**
* @brief SPI configuration * @brief SPI configuration

View File

@ -26,6 +26,7 @@
#define HWTIMER_MAXTIMERS (4) /**< the CPU implementation supports 4 HW timers */ #define HWTIMER_MAXTIMERS (4) /**< the CPU implementation supports 4 HW timers */
#define HWTIMER_SPEED (1000000U) /**< the HW timer runs with 1MHz */ #define HWTIMER_SPEED (1000000U) /**< the HW timer runs with 1MHz */
#define HWTIMER_MAXTICKS (0xFFFFFFFF) /**< 32-bit timer */ #define HWTIMER_MAXTICKS (0xFFFFFFFF) /**< 32-bit timer */
#define HWTIMER_WAIT_OVERHEAD (3)
/** @} */ /** @} */
#endif /* HWTIMER_CPU_H_ */ #endif /* HWTIMER_CPU_H_ */

View File

@ -335,8 +335,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
switch (dev) { switch (dev) {
#if GPIO_0_EN #if GPIO_0_EN
case GPIO_0: case GPIO_0:
exti_line = GPIO_0_EXTI_LINE; exti_line = GPIO_0_PIN;
gpio_irq = GPIO_IRQ_0; gpio_irq = GPIO_0;
GPIO_0_EXTI_CFG(); GPIO_0_EXTI_CFG();
NVIC_SetPriority(GPIO_0_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_0_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_0_IRQ); NVIC_EnableIRQ(GPIO_0_IRQ);
@ -344,8 +344,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_1_EN #if GPIO_1_EN
case GPIO_1: case GPIO_1:
exti_line = GPIO_1_EXTI_LINE; exti_line = GPIO_1_PIN;
gpio_irq = GPIO_IRQ_1; gpio_irq = GPIO_1;
GPIO_1_EXTI_CFG(); GPIO_1_EXTI_CFG();
NVIC_SetPriority(GPIO_1_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_1_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_1_IRQ); NVIC_EnableIRQ(GPIO_1_IRQ);
@ -353,8 +353,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_2_EN #if GPIO_2_EN
case GPIO_2: case GPIO_2:
exti_line = GPIO_2_EXTI_LINE; exti_line = GPIO_2_PIN;
gpio_irq = GPIO_IRQ_2; gpio_irq = GPIO_2;
GPIO_2_EXTI_CFG(); GPIO_2_EXTI_CFG();
NVIC_SetPriority(GPIO_2_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_2_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_2_IRQ); NVIC_EnableIRQ(GPIO_2_IRQ);
@ -362,8 +362,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_3_EN #if GPIO_3_EN
case GPIO_3: case GPIO_3:
exti_line = GPIO_3_EXTI_LINE; exti_line = GPIO_3_PIN;
gpio_irq = GPIO_IRQ_3; gpio_irq = GPIO_3;
GPIO_3_EXTI_CFG(); GPIO_3_EXTI_CFG();
NVIC_SetPriority(GPIO_3_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_3_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_3_IRQ); NVIC_EnableIRQ(GPIO_3_IRQ);
@ -371,8 +371,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_4_EN #if GPIO_4_EN
case GPIO_4: case GPIO_4:
exti_line = GPIO_4_EXTI_LINE; exti_line = GPIO_4_PIN;
gpio_irq = GPIO_IRQ_4; gpio_irq = GPIO_4;
GPIO_4_EXTI_CFG(); GPIO_4_EXTI_CFG();
NVIC_SetPriority(GPIO_4_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_4_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_4_IRQ); NVIC_EnableIRQ(GPIO_4_IRQ);
@ -380,8 +380,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_5_EN #if GPIO_5_EN
case GPIO_5: case GPIO_5:
exti_line = GPIO_5_EXTI_LINE; exti_line = GPIO_5_PIN;
gpio_irq = GPIO_IRQ_5; gpio_irq = GPIO_5;
GPIO_5_EXTI_CFG(); GPIO_5_EXTI_CFG();
NVIC_SetPriority(GPIO_5_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_5_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_5_IRQ); NVIC_EnableIRQ(GPIO_5_IRQ);
@ -389,8 +389,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_6_EN #if GPIO_6_EN
case GPIO_6: case GPIO_6:
exti_line = GPIO_6_EXTI_LINE; exti_line = GPIO_6_PIN;
gpio_irq = GPIO_IRQ_6; gpio_irq = GPIO_6;
GPIO_6_EXTI_CFG(); GPIO_6_EXTI_CFG();
NVIC_SetPriority(GPIO_6_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_6_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_6_IRQ); NVIC_EnableIRQ(GPIO_6_IRQ);
@ -398,8 +398,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_7_EN #if GPIO_7_EN
case GPIO_7: case GPIO_7:
exti_line = GPIO_7_EXTI_LINE; exti_line = GPIO_7_PIN;
gpio_irq = GPIO_IRQ_7; gpio_irq = GPIO_7;
GPIO_7_EXTI_CFG(); GPIO_7_EXTI_CFG();
NVIC_SetPriority(GPIO_7_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_7_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_7_IRQ); NVIC_EnableIRQ(GPIO_7_IRQ);
@ -407,8 +407,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_8_EN #if GPIO_8_EN
case GPIO_8: case GPIO_8:
exti_line = GPIO_8_EXTI_LINE; exti_line = GPIO_8_PIN;
gpio_irq = GPIO_IRQ_8; gpio_irq = GPIO_8;
GPIO_8_EXTI_CFG(); GPIO_8_EXTI_CFG();
NVIC_SetPriority(GPIO_8_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_8_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_8_IRQ); NVIC_EnableIRQ(GPIO_8_IRQ);
@ -416,8 +416,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_9_EN #if GPIO_9_EN
case GPIO_9: case GPIO_9:
exti_line = GPIO_9_EXTI_LINE; exti_line = GPIO_9_PIN;
gpio_irq = GPIO_IRQ_9; gpio_irq = GPIO_9;
GPIO_9_EXTI_CFG(); GPIO_9_EXTI_CFG();
NVIC_SetPriority(GPIO_9_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_9_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_9_IRQ); NVIC_EnableIRQ(GPIO_9_IRQ);
@ -425,8 +425,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_10_EN #if GPIO_10_EN
case GPIO_10: case GPIO_10:
exti_line = GPIO_10_EXTI_LINE; exti_line = GPIO_10_PIN;
gpio_irq = GPIO_IRQ_10; gpio_irq = GPIO_10;
GPIO_10_EXTI_CFG(); GPIO_10_EXTI_CFG();
NVIC_SetPriority(GPIO_10_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_10_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_10_IRQ); NVIC_EnableIRQ(GPIO_10_IRQ);
@ -434,8 +434,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_11_EN #if GPIO_11_EN
case GPIO_11: case GPIO_11:
exti_line = GPIO_11_EXTI_LINE; exti_line = GPIO_11_PIN;
gpio_irq = GPIO_IRQ_11; gpio_irq = GPIO_11;
GPIO_11_EXTI_CFG(); GPIO_11_EXTI_CFG();
NVIC_SetPriority(GPIO_11_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_11_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_11_IRQ); NVIC_EnableIRQ(GPIO_11_IRQ);
@ -443,8 +443,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_12_EN #if GPIO_12_EN
case GPIO_12: case GPIO_12:
exti_line = GPIO_12_EXTI_LINE; exti_line = GPIO_12_PIN;
gpio_irq = GPIO_IRQ_12; gpio_irq = GPIO_12;
GPIO_12_EXTI_CFG(); GPIO_12_EXTI_CFG();
NVIC_SetPriority(GPIO_12_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_12_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_12_IRQ); NVIC_EnableIRQ(GPIO_12_IRQ);
@ -452,8 +452,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_13_EN #if GPIO_13_EN
case GPIO_13: case GPIO_13:
exti_line = GPIO_13_EXTI_LINE; exti_line = GPIO_13_PIN;
gpio_irq = GPIO_IRQ_13; gpio_irq = GPIO_13;
GPIO_13_EXTI_CFG(); GPIO_13_EXTI_CFG();
NVIC_SetPriority(GPIO_13_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_13_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_13_IRQ); NVIC_EnableIRQ(GPIO_13_IRQ);
@ -461,8 +461,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_14_EN #if GPIO_14_EN
case GPIO_14: case GPIO_14:
exti_line = GPIO_14_EXTI_LINE; exti_line = GPIO_14_PIN;
gpio_irq = GPIO_IRQ_14; gpio_irq = GPIO_14;
GPIO_14_EXTI_CFG(); GPIO_14_EXTI_CFG();
NVIC_SetPriority(GPIO_14_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_14_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_14_IRQ); NVIC_EnableIRQ(GPIO_14_IRQ);
@ -470,8 +470,8 @@ int gpio_init_int(gpio_t dev, gpio_pp_t pullup, gpio_flank_t flank, gpio_cb_t cb
#endif #endif
#if GPIO_15_EN #if GPIO_15_EN
case GPIO_15: case GPIO_15:
exti_line = GPIO_15_EXTI_LINE; exti_line = GPIO_15_PIN;
gpio_irq = GPIO_IRQ_15; gpio_irq = GPIO_15;
GPIO_15_EXTI_CFG(); GPIO_15_EXTI_CFG();
NVIC_SetPriority(GPIO_15_IRQ, GPIO_IRQ_PRIO); NVIC_SetPriority(GPIO_15_IRQ, GPIO_IRQ_PRIO);
NVIC_EnableIRQ(GPIO_15_IRQ); NVIC_EnableIRQ(GPIO_15_IRQ);
@ -515,89 +515,87 @@ void gpio_irq_enable(gpio_t dev)
switch(dev) { switch(dev) {
#if GPIO_0_EN #if GPIO_0_EN
case GPIO_0: case GPIO_0:
exti_line = GPIO_0_EXTI_LINE; exti_line = GPIO_0_PIN;
break; break;
#endif #endif
#if GPIO_1_EN #if GPIO_1_EN
case GPIO_1: case GPIO_1:
exti_line = GPIO_1_EXTI_LINE; exti_line = GPIO_1_PIN;
break; break;
#endif #endif
#if GPIO_2_EN #if GPIO_2_EN
case GPIO_2: case GPIO_2:
exti_line = GPIO_2_EXTI_LINE; exti_line = GPIO_2_PIN;
break; break;
#endif #endif
#if GPIO_3_EN #if GPIO_3_EN
case GPIO_3: case GPIO_3:
exti_line = GPIO_3_EXTI_LINE; exti_line = GPIO_3_PIN;
break; break;
#endif #endif
#if GPIO_4_EN #if GPIO_4_EN
case GPIO_4: case GPIO_4:
exti_line = GPIO_4_EXTI_LINE; exti_line = GPIO_4_PIN;
break; break;
#endif #endif
#if GPIO_5_EN #if GPIO_5_EN
case GPIO_5: case GPIO_5:
exti_line = GPIO_5_EXTI_LINE; exti_line = GPIO_5_PIN;
break; break;
#endif #endif
#if GPIO_6_EN #if GPIO_6_EN
case GPIO_6: case GPIO_6:
exti_line = GPIO_6_EXTI_LINE; exti_line = GPIO_6_PIN;
break; break;
#endif #endif
#if GPIO_7_EN #if GPIO_7_EN
case GPIO_7: case GPIO_7:
exti_line = GPIO_7_EXTI_LINE; exti_line = GPIO_7_PIN;
break; break;
#endif #endif
#if GPIO_8_EN #if GPIO_8_EN
case GPIO_8: case GPIO_8:
exti_line = GPIO_8_EXTI_LINE; exti_line = GPIO_8_PIN;
break; break;
#endif #endif
#if GPIO_9_EN #if GPIO_9_EN
case GPIO_9: case GPIO_9:
exti_line = GPIO_9_EXTI_LINE; exti_line = GPIO_9_PIN;
break; break;
#endif #endif
#if GPIO_10_EN #if GPIO_10_EN
case GPIO_10: case GPIO_10:
exti_line = GPIO_10_EXTI_LINE; exti_line = GPIO_10_PIN;
break; break;
#endif #endif
#if GPIO_11_EN #if GPIO_11_EN
case GPIO_11: case GPIO_11:
exti_line = GPIO_11_EXTI_LINE; exti_line = GPIO_11_PIN;
break; break;
#endif #endif
#if GPIO_12_EN #if GPIO_12_EN
case GPIO_12: case GPIO_12:
exti_line = GPIO_12_EXTI_LINE; exti_line = GPIO_12_PIN;
break; break;
#endif #endif
#if GPIO_13_EN #if GPIO_13_EN
case GPIO_13: case GPIO_13:
exti_line = GPIO_13_EXTI_LINE; exti_line = GPIO_13_PIN;
break; break;
#endif #endif
#if GPIO_14_EN #if GPIO_14_EN
case GPIO_14: case GPIO_14:
exti_line = GPIO_14_EXTI_LINE; exti_line = GPIO_14_PIN;
break; break;
#endif #endif
#if GPIO_15_EN #if GPIO_15_EN
case GPIO_15: case GPIO_15:
exti_line = GPIO_15_EXTI_LINE; exti_line = GPIO_15_PIN;
break; break;
#endif #endif
default: default:
return; return;
} }
/* save state */
// int state = (EXTI->IMR & (1 << exti_line) >> exti_line);
/* unmask the pins interrupt channel */ /* unmask the pins interrupt channel */
EXTI->IMR |= (1 << exti_line); EXTI->IMR |= (1 << exti_line);
@ -612,89 +610,87 @@ void gpio_irq_disable(gpio_t dev)
switch(dev) { switch(dev) {
#if GPIO_0_EN #if GPIO_0_EN
case GPIO_0: case GPIO_0:
exti_line = GPIO_0_EXTI_LINE; exti_line = GPIO_0_PIN;
break; break;
#endif #endif
#if GPIO_1_EN #if GPIO_1_EN
case GPIO_1: case GPIO_1:
exti_line = GPIO_1_EXTI_LINE; exti_line = GPIO_1_PIN;
break; break;
#endif #endif
#if GPIO_2_EN #if GPIO_2_EN
case GPIO_2: case GPIO_2:
exti_line = GPIO_2_EXTI_LINE; exti_line = GPIO_2_PIN;
break; break;
#endif #endif
#if GPIO_3_EN #if GPIO_3_EN
case GPIO_3: case GPIO_3:
exti_line = GPIO_3_EXTI_LINE; exti_line = GPIO_3_PIN;
break; break;
#endif #endif
#if GPIO_4_EN #if GPIO_4_EN
case GPIO_4: case GPIO_4:
exti_line = GPIO_4_EXTI_LINE; exti_line = GPIO_4_PIN;
break; break;
#endif #endif
#if GPIO_5_EN #if GPIO_5_EN
case GPIO_5: case GPIO_5:
exti_line = GPIO_5_EXTI_LINE; exti_line = GPIO_5_PIN;
break; break;
#endif #endif
#if GPIO_6_EN #if GPIO_6_EN
case GPIO_6: case GPIO_6:
exti_line = GPIO_6_EXTI_LINE; exti_line = GPIO_6_PIN;
break; break;
#endif #endif
#if GPIO_7_EN #if GPIO_7_EN
case GPIO_7: case GPIO_7:
exti_line = GPIO_7_EXTI_LINE; exti_line = GPIO_7_PIN;
break; break;
#endif #endif
#if GPIO_8_EN #if GPIO_8_EN
case GPIO_8: case GPIO_8:
exti_line = GPIO_8_EXTI_LINE; exti_line = GPIO_8_PIN;
break; break;
#endif #endif
#if GPIO_9_EN #if GPIO_9_EN
case GPIO_9: case GPIO_9:
exti_line = GPIO_9_EXTI_LINE; exti_line = GPIO_9_PIN;
break; break;
#endif #endif
#if GPIO_10_EN #if GPIO_10_EN
case GPIO_10: case GPIO_10:
exti_line = GPIO_10_EXTI_LINE; exti_line = GPIO_10_PIN;
break; break;
#endif #endif
#if GPIO_11_EN #if GPIO_11_EN
case GPIO_11: case GPIO_11:
exti_line = GPIO_11_EXTI_LINE; exti_line = GPIO_11_PIN;
break; break;
#endif #endif
#if GPIO_12_EN #if GPIO_12_EN
case GPIO_12: case GPIO_12:
exti_line = GPIO_12_EXTI_LINE; exti_line = GPIO_12_PIN;
break; break;
#endif #endif
#if GPIO_13_EN #if GPIO_13_EN
case GPIO_13: case GPIO_13:
exti_line = GPIO_13_EXTI_LINE; exti_line = GPIO_13_PIN;
break; break;
#endif #endif
#if GPIO_14_EN #if GPIO_14_EN
case GPIO_14: case GPIO_14:
exti_line = GPIO_14_EXTI_LINE; exti_line = GPIO_14_PIN;
break; break;
#endif #endif
#if GPIO_15_EN #if GPIO_15_EN
case GPIO_15: case GPIO_15:
exti_line = GPIO_15_EXTI_LINE; exti_line = GPIO_15_PIN;
break; break;
#endif #endif
default: default:
return; return;
} }
// /* save state */
// int state = ((EXTI->IMR & (1 << exti_line)) >> exti_line);
/* unmask the pins interrupt channel */ /* unmask the pins interrupt channel */
EXTI->IMR &= ~(1 << exti_line); EXTI->IMR &= ~(1 << exti_line);
@ -1017,13 +1013,13 @@ void gpio_write(gpio_t dev, int value)
} }
} }
#if GPIO_IRQ_0 #ifdef GPIO_IRQ_0
__attribute__((naked)) void isr_exti0(void) __attribute__((naked)) void isr_exti0(void)
{ {
ISR_ENTER(); ISR_ENTER();
if (EXTI->PR & EXTI_PR_PR0) { if (EXTI->PR & EXTI_PR_PR0) {
EXTI->PR |= EXTI_PR_PR0; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR0; /* clear status bit by writing a 1 to it */
config[GPIO_0].cb(config[GPIO_0].arg); config[GPIO_IRQ_0].cb(config[GPIO_IRQ_0].arg);
} }
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1033,13 +1029,13 @@ __attribute__((naked)) void isr_exti0(void)
} }
#endif #endif
#if GPIO_IRQ_1 #ifdef GPIO_IRQ_1
__attribute__((naked)) void isr_exti1(void) __attribute__((naked)) void isr_exti1(void)
{ {
ISR_ENTER(); ISR_ENTER();
if (EXTI->PR & EXTI_PR_PR1) { if (EXTI->PR & EXTI_PR_PR1) {
EXTI->PR |= EXTI_PR_PR1; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR1; /* clear status bit by writing a 1 to it */
config[GPIO_1].cb(config[GPIO_1].arg); config[GPIO_IRQ_1].cb(config[GPIO_IRQ_1].arg);
} }
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1049,13 +1045,13 @@ __attribute__((naked)) void isr_exti1(void)
} }
#endif #endif
#if GPIO_IRQ_2 #ifdef GPIO_IRQ_2
__attribute__((naked)) void isr_exti2(void) __attribute__((naked)) void isr_exti2(void)
{ {
ISR_ENTER(); ISR_ENTER();
if (EXTI->PR & EXTI_PR_PR2) { if (EXTI->PR & EXTI_PR_PR2) {
EXTI->PR |= EXTI_PR_PR2; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR2; /* clear status bit by writing a 1 to it */
config[GPIO_2].cb(config[GPIO_2].arg); config[GPIO_IRQ_2].cb(config[GPIO_IRQ_2].arg);
} }
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1065,13 +1061,13 @@ __attribute__((naked)) void isr_exti2(void)
} }
#endif #endif
#if GPIO_IRQ_3 #ifdef GPIO_IRQ_3
__attribute__((naked)) void isr_exti3(void) __attribute__((naked)) void isr_exti3(void)
{ {
ISR_ENTER(); ISR_ENTER();
if (EXTI->PR & EXTI_PR_PR3) { if (EXTI->PR & EXTI_PR_PR3) {
EXTI->PR |= EXTI_PR_PR3; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR3; /* clear status bit by writing a 1 to it */
config[GPIO_3].cb(config[GPIO_3].arg); config[GPIO_IRQ_3].cb(config[GPIO_IRQ_3].arg);
} }
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1081,13 +1077,13 @@ __attribute__((naked)) void isr_exti3(void)
} }
#endif #endif
#if GPIO_IRQ_4 #ifdef GPIO_IRQ_4
__attribute__((naked)) void isr_exti4(void) __attribute__((naked)) void isr_exti4(void)
{ {
ISR_ENTER(); ISR_ENTER();
if (EXTI->PR & EXTI_PR_PR4) { if (EXTI->PR & EXTI_PR_PR4) {
EXTI->PR |= EXTI_PR_PR4; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR4; /* clear status bit by writing a 1 to it */
config[GPIO_4].cb(config[GPIO_4].arg); config[GPIO_IRQ_4].cb(config[GPIO_IRQ_4].arg);
} }
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1097,37 +1093,38 @@ __attribute__((naked)) void isr_exti4(void)
} }
#endif #endif
#if defined(GPIO_IRQ_5) || defined(GPIO_IRQ_6) || defined(GPIO_IRQ_7) || defined(GPIO_IRQ_8) || defined(GPIO_IRQ_9)
__attribute__((naked)) void isr_exti9_5(void) __attribute__((naked)) void isr_exti9_5(void)
{ {
ISR_ENTER(); ISR_ENTER();
#if GPIO_IRQ_5 #ifdef GPIO_IRQ_5
if (EXTI->PR & EXTI_PR_PR5) { if (EXTI->PR & EXTI_PR_PR5) {
EXTI->PR |= EXTI_PR_PR5; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR5; /* clear status bit by writing a 1 to it */
config[GPIO_5].cb(config[GPIO_5].arg); config[GPIO_IRQ_5].cb(config[GPIO_IRQ_5].arg);
} }
#endif #endif
#if GPIO_IRQ_6 #ifdef GPIO_IRQ_6
else if (EXTI->PR & EXTI_PR_PR6) { if (EXTI->PR & EXTI_PR_PR6) {
EXTI->PR |= EXTI_PR_PR6; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR6; /* clear status bit by writing a 1 to it */
config[GPIO_6].cb(config[GPIO_6].arg); config[GPIO_IRQ_6].cb(config[GPIO_IRQ_6].arg);
} }
#endif #endif
#if GPIO_IRQ_7 #ifdef GPIO_IRQ_7
else if (EXTI->PR & EXTI_PR_PR7) { if (EXTI->PR & EXTI_PR_PR7) {
EXTI->PR |= EXTI_PR_PR7; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR7; /* clear status bit by writing a 1 to it */
config[GPIO_7].cb(config[GPIO_7].arg); config[GPIO_IRQ_7].cb(config[GPIO_IRQ_7].arg);
} }
#endif #endif
#if GPIO_IRQ_8 #ifdef GPIO_IRQ_8
else if (EXTI->PR & EXTI_PR_PR8) { if (EXTI->PR & EXTI_PR_PR8) {
EXTI->PR |= EXTI_PR_PR8; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR8; /* clear status bit by writing a 1 to it */
config[GPIO_8].cb(config[GPIO_8].arg); config[GPIO_IRQ_8].cb(config[GPIO_IRQ_8].arg);
} }
#endif #endif
#if GPIO_IRQ_9 #ifdef GPIO_IRQ_9
else if (EXTI->PR & EXTI_PR_PR9) { if (EXTI->PR & EXTI_PR_PR9) {
EXTI->PR |= EXTI_PR_PR9; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR9; /* clear status bit by writing a 1 to it */
config[GPIO_9].cb(config[GPIO_9].arg); config[GPIO_IRQ_9].cb(config[GPIO_IRQ_9].arg);
} }
#endif #endif
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1135,44 +1132,46 @@ __attribute__((naked)) void isr_exti9_5(void)
} }
ISR_EXIT(); ISR_EXIT();
} }
#endif
#if defined(GPIO_IRQ_10) || defined(GPIO_IRQ_11) || defined(GPIO_IRQ_12) || defined(GPIO_IRQ_13) || defined(GPIO_IRQ_14) || defined(GPIO_IRQ_15)
__attribute__((naked)) void isr_exti15_10(void) __attribute__((naked)) void isr_exti15_10(void)
{ {
ISR_ENTER(); ISR_ENTER();
#if GPIO_IRQ_10 #ifdef GPIO_IRQ_10
if (EXTI->PR & EXTI_PR_PR10) { if (EXTI->PR & EXTI_PR_PR10) {
EXTI->PR |= EXTI_PR_PR10; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR10; /* clear status bit by writing a 1 to it */
config[GPIO_10].cb(config[GPIO_10].arg); config[GPIO_IRQ_10].cb(config[GPIO_IRQ_10].arg);
} }
#endif #endif
#if GPIO_IRQ_11 #ifdef GPIO_IRQ_11
else if (EXTI->PR & EXTI_PR_PR11) { if (EXTI->PR & EXTI_PR_PR11) {
EXTI->PR |= EXTI_PR_PR11; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR11; /* clear status bit by writing a 1 to it */
config[GPIO_11].cb(config[GPIO_11].arg); config[GPIO_IRQ_11].cb(config[GPIO_IRQ_11].arg);
} }
#endif #endif
#if GPIO_IRQ_12 #ifdef GPIO_IRQ_12
else if (EXTI->PR & EXTI_PR_PR12) { if (EXTI->PR & EXTI_PR_PR12) {
EXTI->PR |= EXTI_PR_PR12; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR12; /* clear status bit by writing a 1 to it */
config[GPIO_12].cb(config[GPIO_12].arg); config[GPIO_IRQ_12].cb(config[GPIO_IRQ_12].arg);
} }
#endif #endif
#if GPIO_IRQ_13 #ifdef GPIO_IRQ_13
else if (EXTI->PR & EXTI_PR_PR13) { if (EXTI->PR & EXTI_PR_PR13) {
EXTI->PR |= EXTI_PR_PR13; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR13; /* clear status bit by writing a 1 to it */
config[GPIO_13].cb(config[GPIO_13].arg); config[GPIO_IRQ_13].cb(config[GPIO_IRQ_13].arg);
} }
#endif #endif
#if GPIO_IRQ_14 #ifdef GPIO_IRQ_14
else if (EXTI->PR & EXTI_PR_PR14) { if (EXTI->PR & EXTI_PR_PR14) {
EXTI->PR |= EXTI_PR_PR14; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR14; /* clear status bit by writing a 1 to it */
config[GPIO_14].cb(config[GPIO_14].arg); config[GPIO_IRQ_14].cb(config[GPIO_IRQ_14].arg);
} }
#endif #endif
#if GPIO_IRQ_15 #ifdef GPIO_IRQ_15
else if (EXTI->PR & EXTI_PR_PR15) { if (EXTI->PR & EXTI_PR_PR15) {
EXTI->PR |= EXTI_PR_PR15; /* clear status bit by writing a 1 to it */ EXTI->PR |= EXTI_PR_PR15; /* clear status bit by writing a 1 to it */
config[GPIO_15].cb(config[GPIO_15].arg); config[GPIO_IRQ_15].cb(config[GPIO_IRQ_15].arg);
} }
#endif #endif
if (sched_context_switch_request) { if (sched_context_switch_request) {
@ -1180,5 +1179,6 @@ __attribute__((naked)) void isr_exti15_10(void)
} }
ISR_EXIT(); ISR_EXIT();
} }
#endif
#endif #endif

View File

@ -26,7 +26,7 @@
#include "periph/spi.h" #include "periph/spi.h"
#include "kernel_types.h" #include "kernel_types.h"
#include "transceiver.h" #include "transceiver.h"
#include "vtimer.h" #include "hwtimer.h"
#define ENABLE_DEBUG (0) #define ENABLE_DEBUG (0)
#include "debug.h" #include "debug.h"
@ -101,7 +101,7 @@ void at86rf231_switch_to_rx(void)
do { do {
status = at86rf231_get_status(); status = at86rf231_get_status();
vtimer_usleep(10); hwtimer_wait(HWTIMER_TICKS(10));
if (!--max_wait) { if (!--max_wait) {
printf("at86rf231 : ERROR : could not enter RX_ON mode\n"); printf("at86rf231 : ERROR : could not enter RX_ON mode\n");
@ -258,4 +258,3 @@ void at86rf231_reset(void)
} while ((status & AT86RF231_TRX_STATUS_MASK__TRX_STATUS) } while ((status & AT86RF231_TRX_STATUS_MASK__TRX_STATUS)
!= AT86RF231_TRX_STATUS__TRX_OFF); != AT86RF231_TRX_STATUS__TRX_OFF);
} }

View File

@ -21,7 +21,7 @@
#include "at86rf231.h" #include "at86rf231.h"
#include "at86rf231_spi.h" #include "at86rf231_spi.h"
#include "vtimer.h" #include "hwtimer.h"
#define ENABLE_DEBUG (0) #define ENABLE_DEBUG (0)
#include "debug.h" #include "debug.h"
@ -95,7 +95,7 @@ static void at86rf231_xmit(uint8_t *data, radio_packet_length_t length)
do { do {
status = at86rf231_get_status(); status = at86rf231_get_status();
vtimer_usleep(10); hwtimer_wait(HWTIMER_TICKS(10));
if (!--max_wait) { if (!--max_wait) {
printf("at86rf231 : ERROR : could not enter PLL_ON mode"); printf("at86rf231 : ERROR : could not enter PLL_ON mode");