Problema con PPS e interrupt (?)

Salve a tutti.
Sono nuovo nel forum (ma ho già fatto alcuni progetti arduino abbastanza basic) e spero di essere nella sezione adeguata.
Spiego brevemente cosa dovrebbe fare il programma: prende in input da seriale vari dati su un evento (una occultazione asteroidale) e calcola quando far brillare un LED. Utilizza il segnale PPS (Pulse Per Second) dal modulo GPS (Neo-6m con un'antenna esterna), oltre che la geolocalizzazione, per sincronizzarsi in modo estremamente accurato al tempo universale. Quando il flash si accende come da previsione oppure viene acceso manualmente (sempre da seriale) o lampeggia ogni secondo, stampa il tempo esatto. Il fine è quello di limitare il più possibile qualsiasi delay per avere l'UTC più accurato possibile (nei limiti dell'hardware).

Facendo vari test, il problema sembra risiedere nell'interrupt con il PPS ma non riesco a capire dove. Allego sia il programma completo che il log. Nel log si vede come i timestamps del seriale e quelli del programma alcune volte non coincidono. Inoltre ho notato che togliendo il pin del PPS, questo problema scompare, ma col passare del tempo il flash ha un drift rispetto al PPS (blinking visibile dal modulo gps) forse dovuto al drift del clock del microcontrollore.

Come ho già detto ho fatto pochi progetti con arduino e non ho molta esperienza, specialmente con i registri dei timer utilizzati in questo codice (che potrebbero essere anche loro un problema tipo con l'interrupt?).

Ringrazio in anticipo per l'aiuto!

Flasher_issue_log.txt (5,6 KB)
Flasher.txt (18,0 KB)

Buonasera e benvenuto nella sezione Italiana del forum, :slight_smile:

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.