[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] external interrupt with the chibios?
From: |
Gautier Hattenberger |
Subject: |
Re: [Paparazzi-devel] external interrupt with the chibios? |
Date: |
Fri, 28 May 2021 22:56:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Hi,
Yes, I think it is the correct way to trigger a callback on a GPIO event.
Gautier
Le 27/05/2021 à 10:01, Chris a écrit :
> I found that this code at least compiles ok, the pin is wrong, it is
> used only for testing the code.
>
> palSetPadMode(GPIOA, 0,PAL_MODE_INPUT_PULLUP |
> PAL_STM32_OSPEED_HIGHEST);
> /* Enabling events on both edges of PA0 signal.*/
> //palEnablePadEvent(GPIOA, 0U, PAL_EVENT_MODE_BOTH_EDGES);
> palEnablePadEvent(GPIOA, 0U, PAL_EVENT_MODE_FALLING_EDGE);
> palSetPadCallback(GPIOA, 0U, chibios_ext_isr_cb, NULL);
>
> And the call back function
>
> static void chibios_ext_isr_cb(void *arg)
> {
> (void)arg;
> if (RF_Mode == TRANSMIT) {
> RF_Mode = TRANSMITTED;
> isr_packet_tranmitted = true;
> } else if (RF_Mode == RECEIVE) {
> RF_Mode = RECEIVED;
> isr_packet_received = true;
> lastReceived = millis();
> }
>
> return;
> }
>
> Is this approach acceptable ?
>
> Chris
>
>
> On 27/5/21 2:14 π.μ., Chris wrote:
>> Hi.
>>
>> Is there any example of how to setup an external interrupt iwith
>> chibios?
>>
>> with libopencm3 i use
>>
>> rcc_periph_clock_enable(RCC_SYSCFG);
>> rcc_periph_clock_enable(RCC_GPIOB);
>> rcc_periph_clock_enable(RCC_GPIOB);
>>
>> gpio_mode_setup(GPIOB, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO5);
>> //gpio_mode_setup(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO6);
>>
>> nvic_enable_irq(NVIC_EXTI9_5_IRQ);
>> exti_select_source(EXTI5, GPIOB);
>> //exti_select_source(EXTI6, GPIOC);
>> exti_set_trigger(EXTI5, EXTI_TRIGGER_FALLING);
>> //exti_set_trigger(EXTI6, EXTI_TRIGGER_RISING);
>> exti_enable_request(EXTI5);
>> //exti_enable_request(EXTI6);
>> nvic_set_priority(NVIC_EXTI9_5_IRQ, 0x0F);
>>
>> But with chibios i do';t know how to do it (but i am trying!)
>>
>> Chris
>>
>>
>
> _______________________________________________
> Paparazzi-devel mailing list
> Paparazzi-devel@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/paparazzi-devel