Il 05/09/2019 10:23, LAB ha scritto:
De gustibus (non basta un condensatore)
Il 05/09/2019 10:23, LAB ha scritto:
De gustibus (non basta un condensatore)
Il 05/09/2019 10:53, RobertoA ha scritto:
Ok, quindi potrei usare la funzione millis()?
che non esistano altri modi:
Il 05/09/19 12:58, Drizzt do'Urden ha scritto:
Il sito parla di un uso a basso livello (leggi sofisticato) dei timer che solitamente con Arduino non serve. Se ad esempio usassi i PIC, dovresti occuparti obbligatoriamente di quei dettagli che permettono di avere il pieno controllo sull'hardware. Lo puoi fare anche con Arduino. Ma l'ambiente Arduino e` stato appositamente semplificato (ecco perche' all'amico non piace), e millis e` piu` che sufficiente.
La seguente riga e`un passa basso (debounce all'attacco e al rilascio). La variabile 'out' insegue la variabile 'in' a 20ms di distanza dall'ultimo livello stabile. Impulsi piu` brevi di 20ms vengono ignorati.
if (in == out) t=millis(); else if (millis()-t > 20) out=in;
Il 05/09/2019 17:16, Claudio_F ha scritto:
Il 05/09/2019 21:04, Drizzt do'Urden ha scritto:
Non e' questione di pic o Arduino, di tipo processore La questione e' se usare l'Ide Arduino come ambiente di sviluppo oppure no, perche' anche diverse schede Arduino dispongono di connettorino per collegare un debugger ed operare con compilatore+debugger a posto del cavetto usb ed ide Arduino E la possibilita' di usare compilatore+debugger, pur se inizialmente piu' difficoltosa da avviare, ti consente di lavorare 'vedendo' cosa avviene sul micro
Il 05/09/2019 17:16, Claudio_F ha scritto:
in overflow e si resetta quindi quando capita succede un macello almeno per un ciclo, ho cercato la soluzione a questo problema ma non ci ho capito molto:
testarlo se non aspettare 50 giorni:
unsigned long tempo_2 = millis();
tempo = (tempo_2 - tempo_1); //tempo trascorso in mS fra i due interrupt che corrisponde a mezzo giro o 0,5m/S
if(conta) conta--; //un ciclo a vuoto solo per la partenza else
andato in overflow e lo allinea
tempo_1 = tempo_2; //mette il tempo iniziale uguale al tempo finale per prepararlo alla prossima sottrazione
Il 06/09/19 14:04, LAB ha scritto:
Esatto, in quel sito Leonardo ha un po' complicato.
Non serve gestire o occuparsi dell'overflow.
Con la sottrazione binaria intera senza segno millis()-t il risultato viene sempre corretto, anche in presenza di overflow.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required