Migliorare Timer Progetto

Silente: Nel momento in cui Arduino esegue la break di un case non esegue gli altri. Di conseguenza 1) la lcd.blink() la esegue solo se entra nel case 0 2) la lcd.noblink la esegue solo se entra nel case 5.

Se vuoi che valgano per tutti i casi basta metterli una prima dell'inizio e una dopo la fine dello switch

Una volta invocato il metodo blink il cursore continua a lampeggiare finché non viene invocato il metodo noBlink quindi non serve eseguirlo ad ogni ciclo di loop

Silente:
Grazie, non lo sapevo (non avevo neanche capito cosa facesse)

:o non prendertela a male… ma se non hai capito a cosa serve un istruzione dai dei suggerimenti così a casaccio???

fabpolli: ... dai dei suggerimenti così a casaccio???

... e, per di più, poi piglia e cancella il post così non si capisce più nulla ! Che brutto vizio che ha certa gente ... >:(

Guglielmo

levatemi l ultimo dubbio e poi chiudo il post...

sono riuscito a fare funzionare il tutto...xrò ho una domanda.. ho riletto questo codice 1ml di volte e non capisco perchè funziona solo nel loop()

se lo inserisco fuori dal loop non mi inserisce il valore da tastiera come se la tastiera non e collegata come mai?

beh, il loop è l'unica cosa che funziona... cioè dopo aver eseguito il setup, arduino ripete le istruzioni del loop e basta. per eseguire "pezzi" fuori dal loop bisogna che questi "pezzi" siano delle funzioni complete e verranno eseguite solamente se nel loop ci sarà la chiamata a queste funzioni, eventuali pezzi o funzioni non chiamate non verranno eseguite unica eccezzione le routine di interrupt... ma questo è un altro discorso :)

Patrick_M: beh, il loop è l'unica cosa che funziona... cioè dopo aver eseguito il setup, arduino ripete le istruzioni del loop e basta. per eseguire "pezzi" fuori dal loop bisogna che questi "pezzi" siano delle funzioni complete e verranno eseguite solamente se nel loop ci sarà la chiamata a queste funzioni, eventuali pezzi o funzioni non chiamate non verranno eseguite unica eccezzione le routine di interrupt... ma questo è un altro discorso :)

Quindi come lo dovrei scrivere x farlo funzionare fuori dal loop?

devi fare una funzione

void miaFunzione(void) {
   //tutta la serie di istruzioni relative
   //alla funzione
   //in oggetto
   //per esempio 
   //una serie
   //di stampe
}
//poi nel loop quando ti serve la chiami
void loop() {
   miaFunzione();
   ...
   ...
}

questo è un esempio ma per che motivo la vuoi spostare "fuori dal loop?

Patrick_M: devi fare una funzione

void miaFunzione(void) {
   //tutta la serie di istruzioni relative
   //alla funzione
   //in oggetto
   //per esempio 
   //una serie
   //di stampe
}
//poi nel loop quando ti serve la chiami
void loop() {
   miaFunzione();
   ...
   ...
}

questo è un esempio ma per che motivo la vuoi spostare "fuori dal loop?

xkè volevo inserire che dopo aver inserito il tempo spuntasse una nuova schermata con scritto "pronto" "premi un puls x iniziare" e parte un countdown pre-partita...che da il tempo di chiudere e posare la valigetta...

va bene grazie dell esempio...continuerò a fare delle prove

Tutto dipende da COME scrivi la funzione. Postane una che vediamo. Poi chiaramente la devi richiamare nel loop() al posto giusto. Poi ti do un consiglio: non farti prendere dalla funzionmania, non riempire di funzioni. Metti in funzione quello che ripeti uguale (o quasi) nel loop, così vinci un terno all'otto

Silente: vinci un terno all'otto

Fatto n1: non è di Napoli

testato: Fatto n1: non è di Napoli

:D

Fabiok89: xkè volevo inserire che dopo aver inserito il tempo spuntasse una nuova schermata con scritto "pronto" "premi un puls x iniziare" e parte un countdown pre-partita...che da il tempo di chiudere e posare la valigetta...

va bene grazie dell esempio...continuerò a fare delle prove

questo lo puoi fare a prescindere da dove hai scritto le istruzioni di "preparazione", la separazione in funzioni serve più che altro a semplificarti la vita nella stesura dei programmi ma non è strettamente necessaria al loro funzionamento. Aumentano la leggibilità ma il fatto di richiamare una funzione dal loop oppure mettere in quel punto tutte le istruzioni della funzione come dicevo non cambia proprio nulla. quindi la nuova schermata devi essere capace di implementarla... a prescindere ;)

Patrick_M: :D

questo lo puoi fare a prescindere da dove hai scritto le istruzioni di "preparazione", la separazione in funzioni serve più che altro a semplificarti la vita nella stesura dei programmi ma non è strettamente necessaria al loro funzionamento. Aumentano la leggibilità ma il fatto di richiamare una funzione dal loop oppure mettere in quel punto tutte le istruzioni della funzione come dicevo non cambia proprio nulla. quindi la nuova schermata devi essere capace di implementarla... a prescindere ;)

Io la schermata sono riuscito a riempirla... Ma ovviamente questo comporta un'altro errore che nn capisco quale... Sopra avevo creato uno sketch solo con il timer... E funziona perfettamente... Mi lampeggiano le cifre che mi interessano... Ecc... Ricopio tutto nel codice principale... I valori non mi cambiano e nn mi lampeggiano le cifre... Stesso identico codice... Appena arrivo a casa vi posto il tutto