Auteur | Message |
Adem
Newbie
Messages : 8 Inscrit(e) le: 11/03/2009
|
Posté le 02/04/2009 10:55 | | problème en pratique (16F877) |
bonjour,j'ai programmé PIC16F877A afin de gérer un signal de 40kHZ au émetteur ultrasonique ,et en cas d'interruption externe (tester par un bouton poussoir sur le pin PB7),le PIC doit calculer une valeur (distance) et l'envoyer au PC pour l'affichage. le problème est que lorsque je le teste sur isis il m'a donné un bon résultat,mais en pratique l'interruption externe par le bouton poussoir n'a aucun effet (pas d'affichage sur l'écran). sachant que tout le programme se déroule convenablement (sauf l'interruption externe) et lorsque je teste par un simple message sans interruption il y'a un affichage. est ce que vous pouvez me proposer une solution ou bien m'indiquez le problème ? Merci.
|
|
|
Revenir en haut | Permalien | |
|
Technologuepro
Administrator
Messages : 447 Inscrit(e) le: 15/11/2007
|
Posté le 08/04/2009 21:59 | | RE : problème en pratique (16F877) |
Bonjour, l'interruption externe c'est sur RB0 front montant ou descendant (montant par défaut ) mais tu dis que le bouton est sur RB7 ? change le sur RB0 et c'est OK Sinon envoie moi ton programme pour que je puisse le corriger Bonne chance
|
Le savoir est une chose qu'on peut pas cacher, la connaissance existe pour être transmise aux autres... |
|
|
Revenir en haut | Permalien | |
Adem
Newbie
Messages : 8 Inscrit(e) le: 11/03/2009
|
Posté le 12/04/2009 14:26 | | RE : problème en pratique (16F877) |
Merci pour ton aide., je corriger le programme et je utilise l'interruption RB0 sur isis il m'a donné un bon résultat,mais en pratique il n'affiche pas tout la msg d'interruption voici mon programme d'interruption
#int_EXT void EXT_isr(void) { disable_interrupts(INT_EXT); if (input(pin_b0)) {
dis=(343* (ms*(0.001)))/2; printf("ms ==> %ld\n\r",ms); printf("La distance d= : %f\n\r",dis); } enable_interrupts(INT_EXT); }
|
|
|
Revenir en haut | Permalien | |
|