Allumer 8Leds suivant valeur d'une variable

zorgloub

Member
Bonjour à tou(te)s,

Tout nouveau * dans l'approche des Picaxes (je viens des Basic-Stamp et Pic) je suis confronté à une toute première question de débutant !
Comment allumer 8 leds connectées sur le portB en fonction d'une variable de 8 bits.
La commande DirsB ne semble pas correcte ... car j'essaye le code de ci-dessous.
D'ailleurs, si je teste avec le simulateur, les pins changent de couleur mais passent de blanc à gris mais pas à vert comme avec une commande High !?

Merci pour vos conseils.

#picaxe 20x2
symbol Leds = b0
Leds=0

Main:
Leds = Leds+1
Let DirsB = Leds '---> activation des Leds suivant la valeur stockée dans b0
Pause 250
Goto Main
End

* Présentation d'usage pour faire connaissance: ---> http://alpmn.byethost32.com/index.htm
 
Last edited:

BESQUEUT

Senior Member
Comment allumer 8 leds connectées sur le portB en fonction d'une variable de 8 bits.
La commande DirsB ne semble pas correcte ... car j'essaye le code de ci-dessous.
D'ailleurs, si je teste avec le simulateur, les pins changent de couleur mais passent de blanc à gris mais pas à vert comme avec une commande High !?

Merci pour vos conseils.
Bonsoir et bienvenue sur le forum.
DirsB donne la direction du port, mais pas sa valeur.
Il faut utiliser OutPinsB
Code:
[color=Navy]#picaxe [/color][color=Black]20x2[/color]

[color=Purple]dirsB[/color][color=DarkCyan]=[/color][color=Navy]255[/color]
[color=Purple]outpinsB[/color][color=DarkCyan]=[/color][color=Navy]0[/color]

[color=Blue]do
      inc [/color][color=Purple]outpinsB
      [/color][color=Blue]pause [/color][color=Navy]250[/color]
[color=Blue]loop[/color]
Notez que OutpinsB étant une variable, elle peut être incrémentée sans qu'il soit besoin d'utiliser une variable intermédiaire.

Notez également sur votre propre site :

http://alpmn.byethost32.com/microcontroleursenbasic.htm
Et pour autant que l'algorithme soit conséquent, ces divers GOTO créeront rapidement une jungle inextricable; un véritable plat de spaghettis !
Ainsi, d'une manière générale, l' instruction GOTO est à proscrire impérativement dans le corps de TOUS vos programmes.


Ce n'est pas moi qui l'ai écrit, mais je pense la même chose...
 
Last edited:

zorgloub

Member
Bonsoir Besqueut
merci pour ta réponse, mais:

Si j'essaye donc le code de ci-dessous, mes sorties ne passent pas au vert dans le simulateur !?
Je pensais avoir lu quelque part que la variable OutPins n'était pas applicable aux 20X2 (Mais bien aux 14M2, 18M2, 20M2) ?
J'utilise une variable intermédiaire car je n'ai pas nécessairement besoin d'une incrémentation.
La valeur peut, par exemple, être lue par une instruction d'entrée du type Serin...

#picaxe 20x2
symbol Leds = b0 'L'etat des sorties du portB represente la variable b0
dirsB=255 ' !!!!!!!!!!!!!!!!!
Leds=0

DO
Leds = Leds+1
Let OutPinsB = Leds '---> activation des Leds suivant la valeur stockée dans b0
Pause 250
LOOP ' ;)
end

ERRATUM: OK ca marche en ajoutant la ligne : dirsB=255 !!! Merci !
 
Last edited:
Top