Gaston Dezau
New Member
Bonjour, je viens d'acquerir mon kit Pixace afin de developper des projets electroniques.
J'ai donc commencé par un projet de gestion des feux tricolores de parking MAINLED. HIGHLED et LOWLED commandés par 3 boucles magnétiques MAINLOOP, HIGHLOOP et LOWLOOPdetectant le passage d'un vehicule.
Mon principal problème est que mon programme fonctionne parfaitement en mode Similation mais presente quelques anomalies en mode Programmation ou sous Picaxe VSM.
Cela se produit quand j'introduis la variable COUNTIME dans mes boucles LOOP WHILE. Il semble que le programme n'execute plus cette ligne (39 pour MAINLED).
D'autres part peut-on m'expliquer pourquoi certaines instructions BASIC comme RESET, START, #PICAXE 14M2 ne sont pas reconnues par Picaxe VSM ?
Ci-joints schema et programme.
Merci pour votre aide
J'ai donc commencé par un projet de gestion des feux tricolores de parking MAINLED. HIGHLED et LOWLED commandés par 3 boucles magnétiques MAINLOOP, HIGHLOOP et LOWLOOPdetectant le passage d'un vehicule.
Mon principal problème est que mon programme fonctionne parfaitement en mode Similation mais presente quelques anomalies en mode Programmation ou sous Picaxe VSM.
Cela se produit quand j'introduis la variable COUNTIME dans mes boucles LOOP WHILE. Il semble que le programme n'execute plus cette ligne (39 pour MAINLED).
D'autres part peut-on m'expliquer pourquoi certaines instructions BASIC comme RESET, START, #PICAXE 14M2 ne sont pas reconnues par Picaxe VSM ?
Ci-joints schema et programme.
Merci pour votre aide
Code:
;#picaxe14m2
;setfreq m16
;setint %00000001,%00000011
symbol mainloop=pinC.1
symbol highloop=pinC.2
symbol lowloop=pinC.3
symbol lockled=B.0
symbol mainled=B.1
symbol highled=B.2
symbol lowled=B.3
symbol countime=b1
symbol maxtime=b2
maxtime=60
mainprog:
low B.0
low mainled
low highled
low lowled
countime=1
if mainloop=1 then goto mainlt
if highloop=1 then goto lowlt
if lowloop=1 then goto highlt
goto mainprog
mainlt:
high lockled
high mainled
low highled
low lowled
pause 8000
low mainled
Do
inc countime
if countime > maxtime then goto offtime
loop while highloop =0 and lowloop=0 ;and countime <maxtime
goto offtime
lowlt:
high B.0
low B.1
high B.2
low B.3
pause 8000
low B.2
Do
;w1=w1+1
loop while pinC.1 =0 ;and b0 <20
pause 7000
goto mainprog
highlt:
high B.0
low B.1
low B.2
high B.3
pause 8000
low B.3
Do
;w1=w1+1
loop while pinC.1 =0 ;and b0 <20
pause 7000
goto mainprog
offtime:
;pause 5000
goto mainprog
;interrupt:
;high B.0
;low B.1
;low B.2
;low B.3
;if pinC.1 = 1 then interrupt
;pause 4000
;setint %00000001,%00000011 ;
;goto mainprog