Tout d'abord bonjour ts le monde.
Voila je suis élève ingé en électronique (première année) et je suis actuellement en stage.
Mon projet et la réalisation d'un accordéon electro acoustique
Problématique :
Je dois lire 32 touches. Pour cela je vais câbler des interrupteurs sous forme "matricielle". Je les regroupe par 8. Comment est constitué le câblage ? Prenons un groupe de 8. Je relie chaque interrupteur entre eux et je branche finalement mon fil sur un port du microP définie en sortie. je me retrouve dc pr l'instant avec un fil. j ai toujours huit pattes en l air. je relie chacune de ses huit pattes à un bit d'un autre port de mon microP définie cette fois en entrée.
Lecture : Je met un 1 en sortie => un interrupteur est fermé alors je récupère un 1 sur un des bits de mon entrée. j'obtiens ainsi un mot de huit bits représentatif de mes huit interrupteurs.
Ensuite j active un autre bit en sortie et je reviens lire l'état de mes inter et ainsi de suite dans une boucle infini.
Le problème des inter c'est les rebonds. je dois donc les traiter et cela doit être fait en soft !
Ok je fais une fonction avec une tempo tous ça fonctionne bien.
Ma démarche était : je lis l état du port d entrée en boucle pdt une durée déterminée à l'aide d'un timer et j effectue deux mesures dans ma boucle. Si la mesure a changé alors peut être s'agit il d'un rebond alors je reset le timer et recommence le processus...
Dans l'idéal si pas de rebond, je reviens lire le même interrupteur toute les 15ms. Si il y a du parasite étant donné que je "reset" mon timer à chaque detection d un changement de mon signal, ca peut prendre 15ms de lire un groupe de 8. donc je reviens lire dans le pire des cas le même inter tous les 45ms. Pas mal non ? bah non c mal !! ca donne donc dans le pire des cas une réactivité de l'instrument de 45ms et mon tuteur dis qu'il faut qu'elle soit de 1ms !!!!
Euh oui d'accord mais un rebond dure dans les 10ms.
1ms suppose que je passe pas plus de 330microS à lire mon groupe de 8 interrupteurs.
Comment puis-je traiter un rebond qui dure dans les 7-8ms en seulement 330microS ??????
votre aide me sera en tous cas certainement très utile.
merci de votre future aide.
Corentin
-----