| ... | @@ -45,16 +45,16 @@ Pour configurer l'interruption matérielle pour la ligne d'entrée EXTI k, la pr |
... | @@ -45,16 +45,16 @@ Pour configurer l'interruption matérielle pour la ligne d'entrée EXTI k, la pr |
|
|
NVIC_EnableIRQ(EXTIk_IRQn);
|
|
NVIC_EnableIRQ(EXTIk_IRQn);
|
|
|
Plusieurs GPIO peuvent partager la même ligne d’interruption, il faudra en tenir compte dans la routine d’interruption et gérer le flag d’interruption correspondant.
|
|
Plusieurs GPIO peuvent partager la même ligne d’interruption, il faudra en tenir compte dans la routine d’interruption et gérer le flag d’interruption correspondant.
|
|
|
|
|
|
|
|
2. Activer l'horloge au niveau du périphérique SYSCFG (APB2 bus)
|
|
2. Activer l'horloge au niveau du périphérique **SYSCFG** (APB2 bus)
|
|
|
|
|
|
|
|
3. Configurez le registre de configuration d'interruption externe SYSCFG pour connecter la broche GPIO k à la ligne d'entrée d'interruption externe correspondante EXTI k (EXTICR reg)
|
|
3. Configurez le registre de configuration d'interruption externe **SYSCFG** pour connecter la broche GPIO k à la ligne d'entrée d'interruption externe correspondante EXTI k (**EXTICR** reg)
|
|
|
|
|
|
|
|
4. Sélectionnez un front de signal qui déclenchera l’interruption EXTI: un front montant, un front descendant ou les deux. Ceci est configuré par le registre de sélection de déclenchement de front (reg EXTI_RTSR ou EXTI_FTSR).
|
|
4. Sélectionnez un front de signal qui déclenchera l’interruption EXTI: un front montant, un front descendant ou les deux. Ceci est configuré par le registre de sélection de déclenchement de front (reg **EXTI_RTSR** ou **EXTI_FTSR**).
|
|
|
|
|
|
|
|
5. Réglez le kième bit dans le registre de masque d'interruption (reg EXTI_IMR) pour activer l'interruption EXTI pour la ligne d'entrée k.
|
|
5. Réglez le kième bit dans le registre de masque d'interruption (reg **EXTI_IMR**) pour activer l'interruption EXTI pour la ligne d'entrée k.
|
|
|
|
|
|
|
|
6. Modifiez la routine d'interruption pour EXTI k. Le nom de la routine d'interruption est donné par le fichier de démarrage startup_stm32F446xx.s.
|
|
6. Modifiez la routine d'interruption pour EXTI k. Le nom de la routine d'interruption est donné par le fichier de démarrage startup_stm32F446xx.s.
|
|
|
Le registre EXTI_PR enregistre la source de l'interruption. Pensez à l’effacer dans la routine. Le bit de statut en attente correspondant doit être effacé pour permettre une interruption future. **Étonnamment, le forcer à 1 efface le bit en attente. (reg EXTI_PR)**
|
|
Le registre **EXTI_PR** enregistre la source de l'interruption. Pensez à l’effacer dans la routine. Le bit de statut en attente correspondant doit être effacé pour permettre une interruption future. **Étonnamment, le forcer à 1 efface le bit en attente. (reg EXTI_PR)**
|
|
|
|
|
|
|
|
- Tester le programme et valider votre mise en place d’interruption.
|
|
- Tester le programme et valider votre mise en place d’interruption.
|
|
|
|
|
|
| ... | |
... | |
| ... | | ... | |