Hello,
Here it is.
Very simple and efficiently, as you can see.
And :
Or :
Cheers.
Here it is.
Very simple and efficiently, as you can see.
Code:
'****************************************************************************
'* Codeur proportionnel-digital *
'* pour radiocommande 4 voies *
'* PICAXE 14M2 *
'* G.TREELS 01/2014 *
'****************************************************************************
#picaxe 14M2
SetFreq M32
Symbol Pause300=300/125
Symbol TpsCalcul=4000 ' sinon, la longeur de trame seait allongée de 4ms
Do
Readadc B.1,b0
Readadc B.2,b2
Readadc B.3,b4
Readadc B.4,b6
w0=b0*55/10 'mise échelle
w0=w0+800 '800 µs à 2200 µs 0 à 255.
w4=w0 'memorisation valeur en µs, pour la suite
w0=w0*4/5 '1.25µs pour pulsout à 32 mhz =>1.8 à 2.2 ms
w1=b2*55/10
w1=w1+800 'id voie 2
w4=w4+w1
w1=w1*4/5
w2=b4*55/10
w2=w2+800 'id voie 3
w4=w4+w2
w2=w2*4/5
w3=b6*55/10
w3=w3+800 'id voie 4
w4=w4+w3
w3=w3*4/5
'envoie des trames
pulsout B.5,w0 '0.8 à 2,2 ms
pause Pause300 '300µs
Pulsout B.5,w1 'de pause, entre info servos
pause Pause300
Pulsout B.5,w2
pause Pause300
Pulsout B.5,w3
'La pause de syncro, entre données
w5=20000-900-w4-TpsCalcul 'les 900 (3 X 0.3ms entre pulses, plus durée des pulses
w5=w5/125 'la trame doit durer 20ms
pause w5
w4=0
w5=0 'ben, oui, sinon ...
loop
Or :
Cheers.