Visualizza messaggio singolo
Vecchio 10 ottobre 11, 22:55   #4 (permalink)  Top
elicottero78
User
 
L'avatar di elicottero78
 
Data registr.: 14-05-2005
Residenza: bergamo
Messaggi: 1.278
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
mi spieghi solamente perchè utilizzi:

for ciclo=0 to inpulsi
delay_precision_us(10)
endfor


Il ciclo for si becca a 4Mhz di clock 2us (1 per l'incremento della variabile e 1 per il test) solo lui... lo esegui 90 volte hai 180us che se ne vanno...
Verifica con un'oscilloscopio...

premesso che non conosco picgenius e i limiti delle sue funzioni, meglio un
delay_precision_us(10*impulsi);

per quello che riguarda l'impulso:
la variazione fra min e max del segnale di un servo stando a specifiche è 1000 (minimo 1000 max 2000)

adcrange=adcmax-adcmin
impulsi=int((adcrange/(adcval-adcmin))*100+100)
uscita=1
delay_precision_us(10*impulsi);
uscita=0

considerando il range 900-2100

adcrange=adcmax-adcmin
impulsi=int((adcrange/(adcval-adcmin))*120+90)
uscita=1
delay_precision_us(10*impulsi);
uscita=0
ancora grazie,ora ci provo
elicottero78 non è collegato   Rispondi citando