TVout e millis()

Buona sera a tutti, sono un novizio del forum e un autodidatta di arduino, premesso ciò vengo qui in ricerca del vostro prezioso aiuto/consiglio.
Il mio problema è che ho realizzata un sistema di telemetria con fotocellule, stampante termica, schermetto LCD, tastierino annessi e connessi ecc. e per scandire i tempi del cronometro ho ovviamente usato la funzione "millis()" e fin qui tutto bene, anzi tutto perfetto. Il problema è sorto quando ho voluto collegare il tutto ad una TV in modo che anche gli "spettatori" potessero vedere i tempi. Ho quindi usato la libreria TVout, riesco a visualizzare tutto in tv, solo che il tempo del cronometro è rallentato, ora un secondo scorre circa ogni due reali!!! Credo di intuire che questo sia dovuto agli interupts di TVout, ho cercato di documentarmi sul web, ma quel pochissimo che ho trovato risale al 2010, per spulciando ho letto una frase che dice "millis replacement returns ms since begin was called" ma non viene definita nessuna funzione, allora invece di millis() ho scritto TV.millis(), ho compilato, caricato, provato e fatto il confronto con il cronometro del cellulare, e su un tempo di 110s (che è circa il max con cui devo lavorare) ho trovato uno scostamento di 150ms, mentre su tempi più bassi anche solo 50 ms (che sono tranquillamente imputabili ai tempi di reazione umani).
La mia domanda è quindi: è giusto che io usi la funzione TV.millis() per scandire il tempo del cronometro?
Posso avere qualche tipo di problema?
Grazie mille a tutti per l'aiuto che riceverò!!!

La libreria TVout ha bisogno di tempistiche ben precise per poter generare il segnale video con i tempi e frequenze necessarie. Per questo quasi tutte le altre librerie e tante funzioni non funzionano piú oppure funzionano male e il controller é occupato la maggior parte del tempo.

Dimentica di poter usare la libreria TVout.

Usa un PC/Notebook con un programma teminale per esempio emulazione terminale VT100 per visualizzare i dati trasmessi da arduino sulla seriale/USB oppure scriviti un programma su PC che visualizza i dati.

Ciao Uwe

Se non vado errato, in caso contrario mi scuso, non ti sei ancora presentato, quindi, Ti invitiamo a presentarti QUI
(dicci quali conoscenze hai di elettronica e di programmazione) e a leggere il regolamento QUI
se non lo hai già fatto.

Attilio

La funzione millis della libreria TVout ha una risoluzione di 20ms in caso di segnale PAL ed il suo contatore parte dopo il begin.

Se misuri i centesimi di secondo, la misura è ragionevolmente precisa.

Intanto scusate, mi sono registrato sul forum un paio di anni fa e la presentazione mi sembra di averla fatta, ma nel dubbio corro a rifarla :wink:

In realtà io ho scritto e caricato il programma usando TV.millis() invece che millis(), funziona ed è preciso, al massimo possono essersi leggermente rallentate alcune altre funzioni, ma nulla di esagerato.

Mi sembra strani sentirmi dire scordati di usare TVout...ho visto di gente che ci ha fatto tetris e altri giochini girando sul web...io in realtà ero partito col voler usare lo shield tellymate, che ha un costo irrisorio e fa da interfaccia con la tv, evitando così di usare TVout...ma è introvabile!! :fearful: :fearful:

Volevo evitare di usare PC/Notebook, siccome l'utilizzatore finale della cosa non sarò io, ma una persona diversa, volevo creare una cosa semplice, cosa che appunto una tv premette di fare.

Ad esempio TVOut ed uso di un telecomando IR è impossibile in quanto anche la libreria IR ha una sua tempistica che interferisce con la tvout. Questo si intende per difficile usare quella lib. Infatti è poco usata. Altrimenti perchè molti con Arduino usano semplici LCD 16x2 invece di collegare magari una vecchia piccola tv (in solaio ne ho 3) ?
Inoltre quella lib consuma molto spazio SRAM/Flash
La shield Tellymate ha un suo chip e quindi "scarica" Arduino dal dover gestire il segnale e mantenere in memoria le info a video.

Fossi capace di trovarla la Tellymate! Beh intanto vediamo come va fatto cosi. Vi terrò aggiornati