Mémoriser l'etat des sorties...

spheris

Senior Member
Bonjour,

Par mon programme, je pilote certaines sortie (3 et 5 par exemple).
J'éteins l'alim du 20m2, attends 5 secondes, puis rallume l'alim 5V.
Comment puis-je garder l'état mémoire des sorties pour que 3 et 5 se rallument ?
Merci pour vos réponses.
 

PieM

Senior Member
Bonjour,
il suffit de mémoriser en eeprom l'état des sorties qui est donné par outpinsX, X étant le port des sorties, et de le relire en début de programme.
Donc, soit le mémoriser en permanence ( pas forcément le top), soit détecter la coupure d'alimentation ...

C'est mieux de préciser programme et Picaxe ...
 

spheris

Senior Member
PieM,
Merci pour votre réponse.
Il s'agit d'un PICAXE 20M2.

voici un bout du programme :

Code:
b1 = pinsC
if b1 =%01111111 then stoptout
if b1 = %01111110 then v1 
if b1 = %01111101 then v2 
if b1 = %01111100 then v3 
if b1 = %01111011 then v4
if b1 = %01111010 then v5 
if b1 = %01110100 then v6 
if b1 = %01110011 then v7 
if b1 = %01110010 then v8 
goto main

stoptout:
low 0
low 1
low 2
low 3
low 4
low 5
low 6
low 7
goto main

v1:
if b2= 1 then
high 0
else
low 0
endif
goto main
 

PieM

Senior Member
PieM,
Merci pour votre réponse.
Il s'agit d'un PICAXE 20M2.

voici un bout du programme :

Code:
b1 = pinsC
if b1 =%01111111 then stoptout
if b1 = %01111110 then v1 
if b1 = %01111101 then v2 
if b1 = %01111100 then v3 
if b1 = %01111011 then v4
if b1 = %01111010 then v5 
if b1 = %01110100 then v6 
if b1 = %01110011 then v7 
if b1 = %01110010 then v8 
goto main

stoptout:
low 0
low 1
low 2
low 3
low 4
low 5
low 6
low 7
goto main

v1:
if b2= 1 then
high 0
else
low 0
endif
goto main
Bonjour,

Donc l'état de vos entrées est pinsC et celui des sorties est dans pinsB.

Il faut mettre en mémoire pinsB par un write 0,pinsB, par exemple.

ensuite dans votre programme, en début d'initialisation:
préciser dirsB = %11111111
puis faire un read 0, outpinsB
Toutes les sorties du port B se remettront dans leur état.

Et au lieu d'écrire:

stoptout:
low 0
low 1
low 2
low 3
low 4
low 5
low 6
low 7
goto main

Il suffit de mettre:

stoptout:
outpinsB = 0
goto main
 
Top