Bonjour,
j'ai un soucis avec une interuption entrante sur STM32F103C8T6
le but étant aprés appui sur un bouton (équipé d'un condo, monté en input push pull sur PA2) de lancer un programme d'affichage
dans mon premier cas ci dessous le programme d'affichage se lance 2 fois comme ci un rebond était pris en compte ou,
que le bit 2 du pending register reste haut (si j'ai bien compris le RM0008)
dans ce deuxieme cas le fonctionnement est correct (jamais de rebond)Code:void EXTI2_IRQHandler(void){ // IRQ du BP2 NVIC_DisableIRQ (EXTI2_IRQn); // disable Interrupt EXTI BP2 // Gestion de IRQ BP2 if (EXTI->PR & (1<<2)){// If the PA2 triggered the interrupt, the pending bit is set 1 EXTI->PR |= (1<<2);// reset by writing a ‘1’ in the pending register P208 RM0008 ************* programme d'affichage (s'effectue en 2 secondes) *********** } NVIC_EnableIRQ (EXTI2_IRQn); // Enable Interrupt EXTI 2 }
mais je ne comprend pas pourquoi????
si vous pouviez m'expliquer,Code:void EXTI2_IRQHandler(void){ // IRQ du BP2 NVIC_DisableIRQ (EXTI2_IRQn); // disable Interrupt EXTI BP2 // Gestion de IRQ BP2 ************* programme d'affichage (s'effectue en 2 secondes) *********** if (EXTI->PR & (1<<2)){ // If the PA2 triggered the interrupt, the pending bit is set 1 EXTI->PR |= (1<<2);// reset by writing a ‘1’ in the pending register P208 RM0008 } NVIC_EnableIRQ (EXTI2_IRQn); // Enable Interrupt EXTI 2 }
Merci
-----