From 91fbddca0de4c166d395c9469c75c835a3c3e0ae Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Tue, 11 Apr 2023 09:48:20 +0200 Subject: [PATCH] cedric me fait changer un truc <3 --- driver/driver.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/driver/driver.md b/driver/driver.md index 214a7f5..0d52e45 100644 --- a/driver/driver.md +++ b/driver/driver.md @@ -67,9 +67,10 @@ Il faut tout d'abord activer l'interruption du côté du module et ensuite modif La première est celle des prioritées, trouvable dans le [Manuel de Référence RM008](../assets/cd00171190-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-stm32f107xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf) page 197, la second e est l'ISER qui permet la réecriture des fonction d'IRQ trouvable dans le [Manuel de programmation PM0056](../assets/New_Programming_Manual_CortexM3.pdf) page 119. ```c +int iserRegister = 0; //A voir par rapport au manue lde reference RM008 -> emplacement de la table uint32_t IRQNumber = GetInterruptNum(); //XXX_IRQn NVIC->IP[IRQNumber] |= (Prio << 0x4); -NVIC->ISER[1] |= (0x1<<(IRQNumber-32)); +NVIC->ISER[iserRegister] |= (0x1<<(IRQNumber-(32*iserRegister))); ``` Enfin, une fonction nommée XXX_IRQHandler sera appelée à l'interruption, il suffiera de réecrire cette dernière pour qu'elle soit active. *NB : Il est important de remettre le flag d'interruption à 0 pour relancer ce dernier.*