Citazione:
Originalmente inviato da romoloman 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