[Interruptions] Filtrage necessaire ?

Hello 68tjs

J'ai fait quelques petits tests avec un bouton poussoir du type tact switch comme pour le reset de l'Arduino. Le bouton est raccordé d'un côté à GND et de l'autre côté à +5V à travers une résistance de 10K. Le point commun entre le bouton et la résistance est raccordé à la pin PB0 d'un Atmega1284, ce qui correspond à l'entrée du Timer/compteur 0. Le quartz est de 16 MHz. L'état du compteur est affiché par 8 leds sur le port A. Le programme est écrit en assembleur.

Pour l'étude des rebonds à l'appui du bouton, je compte les fronts montants sur 40 tests consécutifs:
0,1,1,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0

Pour les rebonds au relâchement du bouton, je compte les fronts descendants:
4,1,3,2,3,3,0,0,8,4,0,2,1,1,2,2,16,1,1,0,2,0,1,0,1,0,66,1,0,7,2,0,0,2,4,2,10,3,0,1

Je me suis demandé si cela changerait quelque chose de mettre la résistance entre le bouton et GND et de raccorder le point commun au µC.

Dans ce cas, à l'appui du bouton, ce sont les fronts descendants qui constituent des rebonds:
0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0

Au relâchement, les rebonds sont des fronts montants :
0,0,4,2,13,1,28,1,0,1,0,0,0,0,1,1,1,0,1,0,79,0,0,1,1,0,0,1,0,0,0,0,0,5,0,0,1,1,0,0

Ma conclusion ne concerne évidemment que mon bouton poussoir. Celui-ci montre des rebonds plus nombreux au relâchement sur 80 tests.

J'ai oublié de mentionner que le schéma que j'ai présenté provient du site suivant : https://sites.google.com/site/kfodorprojects/home/electronics-projects-1/hex-switch-debouncer-module, lui-même faisant référence à un article détaillé : Debouncing Contacts and Switches