Autant pour moi, c’est bien le bit 3=RBIE (RB Port Change Interrupt Enable bit) que tu as (correctement) paramétré.
Pour RPBU, je persiste...
-----
Autant pour moi, c’est bien le bit 3=RBIE (RB Port Change Interrupt Enable bit) que tu as (correctement) paramétré.
Pour RPBU, je persiste...
RBPU doit être positionné à 1 puisqu'on ne s'en sert pas (une résistance de 10K est déjà câblée en pull-up en externe).
Il faut noter qu'il n'est pas possible d'affecter individuellement cet état à une entrée particulière, et que RBPU est activable uniquement en entrée.
Super les explications, merci les gars
Par contre là il est 3h24 du matin je suis crevé je vais faire un nouveau programme demain matin. Je vous tiens au courant.
Encore merci.
Bonjour,j'ai des difficultes a programmer un microcontroleurs servant a diriger les feux de route.c est une partie d un devoir a remettre et je sollicite vraiment votre aide de preference le code et les explications.
en effet le probleme est le suivant:je dispose de 4 LEDs le vert(Portb,PINS0) le rouge(portB,pins2) le jaune(portb,pins1) et le bleu(portb,pins7).
au repos le feux se trouve au vert jsuqu a ce que le bouton situe au portD,Pins2 ait ete apuye. au repos le microcontrller se trouve en Idle-Powersave-Modul ,apres avoir apuyer sur ce bouton ildevrait se reveiller et juste apres declancher une interuption sans plus pouvoir provoquer un polling.le LED bleu signale le changement de feux apres q uon ait appyuer sur ce bouton et se desactive directement apres.la duree de changement est de 5 secondes environ.apres le feux devrait passer du jaune au rouge .10 secondes apres devrait revenir en passant par le jaune au vert et se trouver de nouveau au repos .entre le passage du jaune a d autre couleur une pause d une seconde doit s ecouler.
de retour au rouge,aucune interuption n est plus possible c est a dire le feux ne reagit de nouveau lorsqu on appui le bouton que lorsque le feux rouge s etteint. Voila en faite le probleme j espere que je me suis fait comprendre.je vous serai infiniment reconnaissant si vous m apporter le code a ce probleme.ou du moins le cheminement.merci d avance
Bonjour,Bonjour,j'ai des difficultes a programmer un microcontroleurs servant a diriger les feux de route.c est une partie d un devoir a remettre et je sollicite vraiment votre aide de preference le code et les explications.
en effet le probleme est le suivant:je dispose de 4 LEDs le vert(Portb,PINS0) le rouge(portB,pins2) le jaune(portb,pins1) et le bleu(portb,pins7).
au repos le feux se trouve au vert jsuqu a ce que le bouton situe au portD,Pins2 ait ete apuye. au repos le microcontrller se trouve en Idle-Powersave-Modul ,apres avoir apuyer sur ce bouton ildevrait se reveiller et juste apres declancher une interuption sans plus pouvoir provoquer un polling.le LED bleu signale le changement de feux apres q uon ait appyuer sur ce bouton et se desactive directement apres.la duree de changement est de 5 secondes environ.apres le feux devrait passer du jaune au rouge .10 secondes apres devrait revenir en passant par le jaune au vert et se trouver de nouveau au repos .entre le passage du jaune a d autre couleur une pause d une seconde doit s ecouler.
de retour au rouge,aucune interuption n est plus possible c est a dire le feux ne reagit de nouveau lorsqu on appui le bouton que lorsque le feux rouge s etteint. Voila en faite le probleme j espere que je me suis fait comprendre.je vous serai infiniment reconnaissant si vous m apporter le code a ce probleme.ou du moins le cheminement.merci d avance
Plusieurs points :
1 tu aurais du ouvrir une nouvelle discussion
2 tu nous demandes de faire ton travail, ici, on montre ce que l'on a fait et on demande de l'aide sur un point précis non compris
3 si on te demande ce devoir, c'est que tu dois être capable de la faire
4 fais un ordinogramme de ton programme, tu y verras plus clair (habituellement on dit logigramme mais ce mot n'existe pas, l'appellation est ordinogramme)
5/° tu précises quel µC et quel langage.
Désolé de déterrer se vieux topic mais j'ai oublié de vous dire que j'ai réussi depuis
Et aussi pour donner le code pour ceux qui n'y arrivent pas.
program LedavecBP
sub procedure interrupt ;Procedure d'interuption
if portb.4=0 then ; si la LED est éteinte
portb.4=1 ; on l'allume.
INTCON.1=0 ; on remet à zéro le flag
else portb.4=0 ; si elle n'est pas éteinte on l'éteind
INTCON.1=0 ; on remet à zéro le flag
end if
end sub
main:
OPTION_REG=%10000000 ; on active les résistance de pull-up
INTCON = %10010000 ; on active les interruptions
trisb.0=1 ; on met rb0 en entré
trisb.4=0 ;on met rb4 en sortie
trisb.5=0 ;on met rb5 en sortie
while true ; boucle en attente de l'interruption
nop
wend
end.