Bonjour, je suis en train de développer une application en utilisant le Max7219 avec un picaxe 08m2.
L'application fonctionne bien mais l'animation est très lente. Je vois les lignes une par une qui s’efface ainsi que les lignes qui s'affiche une par une.
Certain vont me dire c'est normale car tu affiches ligne par ligne et tu efface ligne par ligne.
Mais je n'ai aucune pause ! Je suppose que ça devrais être bien plus rapide.
Dans la logique, je devrais même mettre une pause entre chaque animation afin d'avoir le temps de la voir.
PS: j'utilise une Matrix 64 Led.
Merci d'avance.
L'application fonctionne bien mais l'animation est très lente. Je vois les lignes une par une qui s’efface ainsi que les lignes qui s'affiche une par une.
Certain vont me dire c'est normale car tu affiches ligne par ligne et tu efface ligne par ligne.
Mais je n'ai aucune pause ! Je suppose que ça devrais être bien plus rapide.
Dans la logique, je devrais même mettre une pause entre chaque animation afin d'avoir le temps de la voir.
PS: j'utilise une Matrix 64 Led.
Merci d'avance.
Code:
symbol DIN = C.0
symbol LOAD = C.1
symbol CLK = C.2
symbol LEN = 1 'pulse duration
low DIN
low LOAD
low CLK
'init7219
b1=$09 'decode mode
b0=$00 '=yes, all digits=BCD
gosub shiftout1
b1=$0b 'scan limit
b0=$07 '=4 digits, $00=1 digit only, $01=2 digits only, ...
gosub shiftout1
b1=$0c 'shutdown mode
b0=$01 '=normal
gosub shiftout1
b1=$0a 'intensity
b0=$02 '=max1
gosub shiftout1
b1=$0f 'display test
b0=$00 '=normal
gosub shiftout1
gosub clearDisplay
main:
b1=6
b0=%00100100
gosub shiftout1
b1=5
b0=%00111100
gosub shiftout1
b1=4
b0=%00100100
gosub shiftout1
b1=3
b0=%00111100
gosub shiftout1
gosub clearDisplay
b1=7
b0=%00100100
gosub shiftout1
b1=6
b0=%00111100
gosub shiftout1
b1=5
b0=%00100100
gosub shiftout1
b1=4
b0=%00111100
gosub shiftout1
gosub clearDisplay
b1=8
b0=%00100100
gosub shiftout1
b1=7
b0=%00111100
gosub shiftout1
b1=6
b0=%00100100
gosub shiftout1
b1=5
b0=%00111100
gosub shiftout1
gosub clearDisplay
goto main
clearDisplay:
for b3 = 1 to 8
b1=b3
b0=$00
gosub shiftout1
next
return
shiftout1:
for b5=1 to 16
w6 = w0 & $8000
low DIN
if w6 = 0 then bit_is_low
high DIN
bit_is_low:
pulsout CLK,LEN
w0 = w0 * 2 '<< (shift bits left)
next b5
pulsout LOAD,LEN
return