Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Sleep Mode avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#31 Message par jo7 » ven. 6 juil. 2018 09:22 lien vers la Data-Sheet : Cliquez ici

Page 115 de la DS , il explique le wake-up mais je n'ai pas très bien compris :roll:

Sleep Mode avec un PIC16F18345
Jérémy
Administrateur du site
Administrateur du site
Messages : 2112
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#32 Message par Jérémy » ven. 6 juil. 2018 09:53 lien vers la Data-Sheet : Cliquez ici

Il est trés difficile de te suivre, car tu change a chaque post de facon de faire.

Ton programme ne fait rien dans la boucle comment sait tu qu'il est en sommeil ou non ?

Commence par faire clignoter une led dans ta boucle principale !!!!
Ensuite tu programme un BP pour qu'un appui sur celui ci, passe ton pic en veille ! la led devrait donc arrêter de clignoter .

Une fois que tu auras réussis a faire ca ce sera plus facile d'avancer
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Sleep Mode avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#33 Message par jo7 » ven. 6 juil. 2018 11:01 lien vers la Data-Sheet : Cliquez ici

Mon code est très simple. Mon but est d'activer le mode veille avec un bouton et de le désactiver de la même manière.

Sleep Mode avec un PIC16F18345
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1031
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#34 Message par paulfjujo » ven. 6 juil. 2018 12:56 lien vers la Data-Sheet : Cliquez ici

bonjour,

je ne connais pas ton type de PIC et ne vais pas l'étudier à ta place.
Certains PIC on plusieurs possibiites d'interrupt

soit via 1 des 4 bits MSB du port B
soit via specifiquement RB0 seulement
soit une interrupt par bit port B sur les PIC les plus rescents.

donc Soit tu geres 2 boutons
1 pour mettre en veille
l'autre pour le reveiller
car je ne pense pas que tu puisses te servir d'une seule et meme IT (issue d'un BP)
pour faire les 2 fonctions.
.
car tu ne pourras plus differencier l'origine de l'interrupt .

sinon , via un Flag ON/OFF
la premiere interupt de ton BP mets le flag à ON


Dans le main programme
si Flag ON => mise en veille
eteint la Led
et passe en mode SLEEP

initialise le mode reveil par une interrupt AUTRE que celle du BP
Le watchdog par exemple ...
des que la condition est realisé remet le Flag sur OFF
fait clignoter une led comme le propose Jeremy
il faut TOUJOURS un miminum d'interface operateur dans une application .
RAZ systematique du Watchdog apres N boucles ou n mS
si Flag=0FF

Sleep Mode avec un PIC16F18345
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 372
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#35 Message par venom » ven. 6 juil. 2018 22:06 lien vers la Data-Sheet : Cliquez ici

Bonjour a tous, désolé de vous interrompre et pour mon abscence en ce moment.

J'ai pensé a une chose en lisant cette phrase :
paulfjujo a écrit :car je ne pense pas que tu puisses te servir d'une seule et meme IT (issue d'un BP)
pour faire les 2 fonctions.
.


Sa ne serait pas possible si genre un appui bref réveil le pic et 2 appuis bref sur le même bouton le met en veille ?
Je pense a sa comme ça car je n'y connais rien en mise en veille des pics :wink:

Bonne soirée.






@++
En fait tout est une question de BIT ? :-D

Sleep Mode avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#36 Message par jo7 » sam. 7 juil. 2018 10:27 lien vers la Data-Sheet : Cliquez ici

Bonjour, je pense que c'est possible avec un bouton de gérer ces deux interruptions. Par exemple un appui long peut mettre en sommeil le pic et un autre appui le réveil.

Sleep Mode avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#37 Message par jo7 » sam. 7 juil. 2018 10:30 lien vers la Data-Sheet : Cliquez ici

paulfjujo a écrit :bonjour,

je ne connais pas ton type de PIC et ne vais pas l'étudier à ta place.
Certains PIC on plusieurs possibiites d'interrupt

soit via 1 des 4 bits MSB du port B
soit via specifiquement RB0 seulement
soit une interrupt par bit port B sur les PIC les plus rescents.

donc Soit tu geres 2 boutons
1 pour mettre en veille
l'autre pour le reveiller
car je ne pense pas que tu puisses te servir d'une seule et meme IT (issue d'un BP)
pour faire les 2 fonctions.
.
car tu ne pourras plus differencier l'origine de l'interrupt .

sinon , via un Flag ON/OFF
la premiere interupt de ton BP mets le flag à ON


Dans le main programme
si Flag ON => mise en veille
eteint la Led
et passe en mode SLEEP

initialise le mode reveil par une interrupt AUTRE que celle du BP
Le watchdog par exemple ...
des que la condition est realisé remet le Flag sur OFF
fait clignoter une led comme le propose Jeremy
il faut TOUJOURS un miminum d'interface operateur dans une application .
RAZ systematique du Watchdog apres N boucles ou n mS
si Flag=0FF



Oui je vois un peu la logique mais sur ma carte je n'ai qu'un bouton pour gérer tout cela, il faut trouver les bonne interruptions associés.
Avez-vous des exemples pour cela ?

Sleep Mode avec un PIC16F18345
Gérard
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 804
Âge : 60
Enregistré en : septembre 2015
Localisation : Alsace

#38 Message par Gérard » sam. 7 juil. 2018 14:49 lien vers la Data-Sheet : Cliquez ici

Je pense comme Paul, avec un flag.

Il faut à chaque interruption tester le flag, s'il est à 1 donc mise à 0 et mise en sommeil. S'il est à 0, réveil du PIC et mise à 1 du flag.
Le 11 / 07 / 2017, j'ai commandé une Ford Mustang.
Le 31 / 08 / 2017, j'ai eu la Mustang, un régal.

Sleep Mode avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#39 Message par jo7 » sam. 7 juil. 2018 15:02 lien vers la Data-Sheet : Cliquez ici

Il faut initialiser le flag au début du code ? Par exemple : int flag

Sleep Mode avec un PIC16F18345
Gérard
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 804
Âge : 60
Enregistré en : septembre 2015
Localisation : Alsace

#40 Message par Gérard » sam. 7 juil. 2018 22:44 lien vers la Data-Sheet : Cliquez ici

Au début du code, tu es réveillé, alors le flag doit être à 1. Tu souhaites passer en mode sleep, tu passes d'abord le flag à 0.
Le 11 / 07 / 2017, j'ai commandé une Ford Mustang.
Le 31 / 08 / 2017, j'ai eu la Mustang, un régal.


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 6 invités