- Messaggi: 1010
- Ringraziamenti ricevuti 107
Real Time Clock e settaggio ora......
11 Anni 6 giorni fa #11
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Real Time Clock e settaggio ora......
questo è un estratto del "C18 step by step":
"Nel caso in cui nessuno dei case viene verificato verrà eseguito il codice che segue la parola chiave default. Si noti che in questo caso non è presente la parola chiave break poiché non è comunque presente altro codice, ovvero l'esecuzione del programma riprenderebbe comunque dopo le parentesi graffe associate al blocco switch. In particolare,qualora non si abbia la necessità di eseguire nessuna operazione di default si può omettere il blocco relativo."
Se ho ben capito, tu vuoi gestire la pressione dei pulsanti indipendentemente dall'orario. Se è così, le istruzioni che hai messo sotto la parola chiave default non devono stare dentro il blocco switch ma all'esterno di esso...
"Nel caso in cui nessuno dei case viene verificato verrà eseguito il codice che segue la parola chiave default. Si noti che in questo caso non è presente la parola chiave break poiché non è comunque presente altro codice, ovvero l'esecuzione del programma riprenderebbe comunque dopo le parentesi graffe associate al blocco switch. In particolare,qualora non si abbia la necessità di eseguire nessuna operazione di default si può omettere il blocco relativo."
Se ho ben capito, tu vuoi gestire la pressione dei pulsanti indipendentemente dall'orario. Se è così, le istruzioni che hai messo sotto la parola chiave default non devono stare dentro il blocco switch ma all'esterno di esso...
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
11 Anni 6 giorni fa #12
da shark2
Risposta da shark2 al topic Real Time Clock e settaggio ora......
ho provato...se sposto tutto il blocco "default" compreso all'esterno delle parentesi del ciclo di switch si ritrovano praticamente nel while(1)...in tal caso il compilatore mi da errore...se sposto le funzioni dell'rtc nel while(1) ottengo lo stesso effetto indesiderato che spiegavo nel post di prima e mostrato nel video...e sto allo stesso punto
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shark2
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 24
- Ringraziamenti ricevuti 0
11 Anni 5 giorni fa #13
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Real Time Clock e settaggio ora......
se non lo già hai fatto, cancella le parole default e break e lascia solo le routines. Purtroppo non conosco il compilatore che stai usando...
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
11 Anni 5 giorni fa #14
da shark2
Risposta da shark2 al topic Real Time Clock e settaggio ora......
compilatore a parte penso lo standard sia lo stesso...comunque é quello ke dicevo, fatto anche così...praticamente nel while(1) al di fuori del ciclo di switch...sempre uguale...
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shark2
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 24
- Ringraziamenti ricevuti 0
11 Anni 5 giorni fa #15
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Real Time Clock e settaggio ora......
Ciao Shark,
qulello che chiami anomalo e' il comportamento normale per come e' scritto il programma.
Tieni conto che ogni volta che invii dei dati al modulo LCD la scritta rimane.
Quindi quando scrivi Caso 1 rimane scritto fino alla nuova presssione non perche' il programma continui a inviare la scritta Caso 1 ma per la ragione inversa, ovvero non ivia nulla quindi rimane quello che ho scritto prima.
Nel tuo secondo caso se non premi il pulsante, visto che il case e' in un loop, alla fine della pressione del tasto viene eseguito l'aggiornamento dell'orario per cui la vecchia scritta cambia.
Per cambiare l'ora devi semplicemente cambiarla in uno dei casi e aggiornarla prima del brake.
Volendo si puo' creare anche una state machine ma concettualmente potrebbe essere piu' complicata da spiegare ance se non difficile da implementare.
...make it work first...and then search for alternatives!
Saluti,
Mauro
qulello che chiami anomalo e' il comportamento normale per come e' scritto il programma.
Tieni conto che ogni volta che invii dei dati al modulo LCD la scritta rimane.
Quindi quando scrivi Caso 1 rimane scritto fino alla nuova presssione non perche' il programma continui a inviare la scritta Caso 1 ma per la ragione inversa, ovvero non ivia nulla quindi rimane quello che ho scritto prima.
Nel tuo secondo caso se non premi il pulsante, visto che il case e' in un loop, alla fine della pressione del tasto viene eseguito l'aggiornamento dell'orario per cui la vecchia scritta cambia.
Per cambiare l'ora devi semplicemente cambiarla in uno dei casi e aggiornarla prima del brake.
Volendo si puo' creare anche una state machine ma concettualmente potrebbe essere piu' complicata da spiegare ance se non difficile da implementare.
...make it work first...and then search for alternatives!
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.