11-29-2021 06:39 PM
Hi all,
I have a application:conter the pluse then send to PC, as follow:
Boone301_0-1638232373181.png
the main to run before trigger, and stoped after pluse trigger, as follow:
Boone301_1-1638232661881.png
I don't know why the main stoped after trigger.
Could you help me?
Thanks
Boone
09-02-2026 05:54 PM
À première vue, le fait que main() s’arrête juste après le déclenchement n’est pas un comportement normal du timer lui-même. Je vérifierais d’abord si le programme entre dans une interruption après le front sur P0. Si le code reste bloqué dans l’ISR, dans une boucle d’attente, ou déclenche un HardFault, le reste de main() ne s’exécutera évidemment plus. Vérifiez aussi que le flag d’interruption de Timer2 est bien effacé et que l’ISR retourne correctement. Dans le débogueur, placez un breakpoint au début et à la fin de l’ISR de P0 ainsi que dans l’ISR de Timer2. Si vous montrez le code de main(), des interruptions et de la configuration de Timer2, on pourra probablement trouver précisément où ça bloque.
09-02-2026 08:57 PM
Oui, c’est exactement le genre de problème que je regarderais en premier. Si main() ne continue plus après le déclenchement, le plus probable est que le processeur reste dans une ISR ou qu’une exception survienne. Je vérifierais notamment que le flag de Timer2 est bien acquitté, que l’ISR de P0 se termine correctement et qu’il n’y a pas de boucle bloquante. Avec le débogueur, mets des breakpoints à l’entrée et à la sortie des deux ISR : ça permettra rapidement de voir laquelle empêche main() de reprendre. Si tu peux partager le code concerné, je peux regarder où ça coince. À découvrir, cette plateforme qui propose un accès pratique aux paris en ligne. Les utilisateurs tomifobia.com profitent d’un environnement bien structuré.