- Messaggi: 24
- Ringraziamenti ricevuti 0
Real Time Clock e settaggio ora......
11 Anni 2 giorni fa #26
da shark2
Risposta da shark2 al topic Real Time Clock e settaggio ora......
No no ragazzi, tranquilli non suonerà nessuna sveglia ...l'interrupt con ritardo ogni 15 minuti mi serve per eseguire ogni tot tempo un'altra operazione...a tale proposito sono riuscito ad utilizzare l'rtc anche per generare tramite il timer interno, un interrupt ogni 15 minuti o comunque settando i parametri ogni quanto si vuole...ora mi chiedevo, domanda tecnica, sarebbe possibile generare lo stesso interrupt utilizzando il timer interno del pic ogni 15 minuti?...mi pare che non si possa arrivare a tempi così lunghi vero?
Comunque non è un orologio, nel senso la funzione orologio c'è ma fa parte di un progetto con il quale sto realizzando un indicatore di livello con modulo gms per lettura a distanza del valore...praticamente accetta segnali in ingresso da sonde o dispositivi di misura con uscita a 4-20mA la quale dopo essendo stata convertita in tensione viene acquisita dall'ADC del PIC...poi ovviamente da software si setta la giusta scala ed il tipo per la visualizzazione da fare, io nello specifico sto utilizzando una sonda di livello liquidi per acqua potabile con range da 0-10 metri (4-20mA)...in loco la lettura è instantanea sul display dell'accrocco ...per la distanza è presente un modulo GSM Siemens TC35 che comprai anni fa ad una fiera di elettronica per la modica cifra di 10€...sono i classici moduli da surplus e visto che con la board che aveva la gestione di alcuni comandi AT era bloccata, ne ho realizzata una come adattatore con gli schemi che si trovano in rete tramite semplice max232 (il modem dialoga in seriale) e l'ho utilizzato per tale progetto...quindi per il controllo a distanza si chiama il modem, durante la chiamata il modem invia sulla seriale una stringa del RING dove è contenuto il numero in entrata...contemporaneamente tramite interrupt ad ogni chiamata il programma processa la stringa ricevuta, ne estrae solo il numero di chi chiama e lo confronta con quello accettato, se i numeri coincidono stacca la chiamata ed invia un sms con la lettura del livello...la parte sensore, ADC e modem è già pronta...ora stavo implementando l'rtc e finito con questo inizio a fare qualche esperimento con una SDCard in modo che se mi riesce di implementarla avrà anche la funzione di datalogger...l'impulso ogni 15 minuti mi serve proprio per questo, ogni 15 minuti mi scrive il data, ora e livello letto in un file TXT sulla SDCard...speriamo bene
comunque fino ad ora, su suggerimento di un utente di altro forum ho semplificato un pò il codice gestendolo con una sola variabile...praticamente è identico solo che con il pulsante incremento solo la variabile che poi va ad un solo ciclo di switch...per la parte visiva durante la regolazione dei parametri ci avevo già pensato, ora vedo che riesco a fare...mi interessava solo sapere come dicevo prima se fosse possibile effettuare il conteggio dei 15 minuti direttamente con il timer interno del pic per poi generare l'interrupt, ma penso sia troppo lungo come tempo anche con prescaler al massimo...il quarzo utilizzato esternamente ovviamente è da 20MHz (quindi ho una Fosc/4 di 5MHz)...magari voi ne sapete qualcosa di più...thanks
Comunque non è un orologio, nel senso la funzione orologio c'è ma fa parte di un progetto con il quale sto realizzando un indicatore di livello con modulo gms per lettura a distanza del valore...praticamente accetta segnali in ingresso da sonde o dispositivi di misura con uscita a 4-20mA la quale dopo essendo stata convertita in tensione viene acquisita dall'ADC del PIC...poi ovviamente da software si setta la giusta scala ed il tipo per la visualizzazione da fare, io nello specifico sto utilizzando una sonda di livello liquidi per acqua potabile con range da 0-10 metri (4-20mA)...in loco la lettura è instantanea sul display dell'accrocco ...per la distanza è presente un modulo GSM Siemens TC35 che comprai anni fa ad una fiera di elettronica per la modica cifra di 10€...sono i classici moduli da surplus e visto che con la board che aveva la gestione di alcuni comandi AT era bloccata, ne ho realizzata una come adattatore con gli schemi che si trovano in rete tramite semplice max232 (il modem dialoga in seriale) e l'ho utilizzato per tale progetto...quindi per il controllo a distanza si chiama il modem, durante la chiamata il modem invia sulla seriale una stringa del RING dove è contenuto il numero in entrata...contemporaneamente tramite interrupt ad ogni chiamata il programma processa la stringa ricevuta, ne estrae solo il numero di chi chiama e lo confronta con quello accettato, se i numeri coincidono stacca la chiamata ed invia un sms con la lettura del livello...la parte sensore, ADC e modem è già pronta...ora stavo implementando l'rtc e finito con questo inizio a fare qualche esperimento con una SDCard in modo che se mi riesce di implementarla avrà anche la funzione di datalogger...l'impulso ogni 15 minuti mi serve proprio per questo, ogni 15 minuti mi scrive il data, ora e livello letto in un file TXT sulla SDCard...speriamo bene
comunque fino ad ora, su suggerimento di un utente di altro forum ho semplificato un pò il codice gestendolo con una sola variabile...praticamente è identico solo che con il pulsante incremento solo la variabile che poi va ad un solo ciclo di switch...per la parte visiva durante la regolazione dei parametri ci avevo già pensato, ora vedo che riesco a fare...mi interessava solo sapere come dicevo prima se fosse possibile effettuare il conteggio dei 15 minuti direttamente con il timer interno del pic per poi generare l'interrupt, ma penso sia troppo lungo come tempo anche con prescaler al massimo...il quarzo utilizzato esternamente ovviamente è da 20MHz (quindi ho una Fosc/4 di 5MHz)...magari voi ne sapete qualcosa di più...thanks
Si prega Accedi o Crea un account a partecipare alla conversazione.
- shark2
- Autore della discussione
- Junior Member
Riduci
Di più
11 Anni 23 Ore fa #27
da shark2
Risposta da shark2 al topic Real Time Clock e settaggio ora......
Ciao raga,
sono riuscito ad implementare anche la SDCard per salvare i dati sistematicamente ad ogni intervallo (grazie alle librerie ovviamente, due righe di codice e fa tutto lui sennò stavamo freschi )...ora mi chiedevo una cosa, considerando che tale accrocco una volta messo in funzione se ne starà lì buono bello solo soletto ed abbandonato prima che qualcuno ci passi d'avanti, volevo implementare per sicurezza un qualcosa che in caso il sistema vada in blocco mi resettasse automaticamente il pic...pensavo al watchdog timer, qualcuno saprebbe spiegarmi cone usarlo?...nel senso lo attivo direttamente dai configuration bits poi all'interno del codice dovrei assegnargli il prescaler ed ovviamente dargli il punto di reset per la normale esecuzione del programma...potreste dirmi su che basi scegliere il valore del prescaler e soprattutto come dare il reset al timer nel codice?
sono riuscito ad implementare anche la SDCard per salvare i dati sistematicamente ad ogni intervallo (grazie alle librerie ovviamente, due righe di codice e fa tutto lui sennò stavamo freschi )...ora mi chiedevo una cosa, considerando che tale accrocco una volta messo in funzione se ne starà lì buono bello solo soletto ed abbandonato prima che qualcuno ci passi d'avanti, volevo implementare per sicurezza un qualcosa che in caso il sistema vada in blocco mi resettasse automaticamente il pic...pensavo al watchdog timer, qualcuno saprebbe spiegarmi cone usarlo?...nel senso lo attivo direttamente dai configuration bits poi all'interno del codice dovrei assegnargli il prescaler ed ovviamente dargli il punto di reset per la normale esecuzione del programma...potreste dirmi su che basi scegliere il valore del prescaler e soprattutto come dare il reset al timer nel codice?
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
10 Anni 11 Mesi fa #28
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Real Time Clock e settaggio ora......
...vedo che aggingi pezzi!
Il watchdog (WDT) aumentera' la stabilita' del sistema...ma non necessariamente!
Per usarlo devi resettarlo prima che vada in overflow.
Se va in overflow avvia un reset.
Prima di tutto devi abilitarlo per mezzo delle configuration words.
Poi devi garantire che venga resettato in tempi opportuni (guarda il datasheet per il clock e le sue impostazioni).
Abilitarlo e usarlo male pero' ti puo' causare dei reset...
...e ti scotti per non scottarti.
Saluti,
Mauro
Il watchdog (WDT) aumentera' la stabilita' del sistema...ma non necessariamente!
Per usarlo devi resettarlo prima che vada in overflow.
Se va in overflow avvia un reset.
Prima di tutto devi abilitarlo per mezzo delle configuration words.
Poi devi garantire che venga resettato in tempi opportuni (guarda il datasheet per il clock e le sue impostazioni).
Abilitarlo e usarlo male pero' ti puo' causare dei reset...
...e ti scotti per non scottarti.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
10 Anni 11 Mesi fa #29
da shark2
Risposta da shark2 al topic Real Time Clock e settaggio ora......
Ciao Mauro,
si si il wdt l'ho già abilitato...da datasheet il tempo minimo di intervento lo indica come 4ms quindi gli ho assegnato un postscaler con valore di 1:8192 in modo da avere circa 32 secondi...provandolo nella normale esecuzione del programma e poi simulando un blocco, sembra fungere bene...non avendo necessità di controllarlo o azzerarlo in parti specifiche del programma, lo azzero direttamente nel ciclo infinito in modo che se va tutto bene viene continuamente azzerato, se dovesse bloccarsi non eseguendo più le istruzioni nel while(1) scatenerebbe il reset
per il software in realtà dovrebbe essere completo salvo giusto qualche ritocco qui e la ma comunque dovrebbe essere funzionante, non posso al momento testarlo integralmente perchè purtroppo devo cambiare pic visto che questo che ho a disposizione ha sullo stesso pin sia un uscita del modulo uart che un uscita dell'spi e non posso utilizzarlo per tutti e due...quindi al momento sono un pò fermo fino all'ordine del materiale che mi occorre
Volevo nel frattempo però chiedere un'informazione, sul portb potrei tranquillamente utilizzare le pull-up interne ma chiedo comunque per ogni evenienza, praticamente sui pin di ICSP, RB6 ed RB7, rispettivamente PGC e PGD, ho due pulsanti...i pulsanti in sè non causano problemi poichè sono normalmente aperti ma supponendo di avere per i pulsanti una resistenza di pull-up esterna e quindi fissa, creerebbe problemi all'ICSP oppure possono star lì tranquillamente?
intanto per chi volesse visionarlo, riporto di seguito il link per scaricare l'intero progetto in mikroc del codice che dovrebbe essere finale, o almeno una "REV 1.0" già funzionante, salvo qualche correzione in fase di prova per la visualizzazione con magari qualche riga o carattere da spostare
www.mediafire.com/download/5d9lv28p1d844c1/Gsm_Logger_45K22.zip
thanks
si si il wdt l'ho già abilitato...da datasheet il tempo minimo di intervento lo indica come 4ms quindi gli ho assegnato un postscaler con valore di 1:8192 in modo da avere circa 32 secondi...provandolo nella normale esecuzione del programma e poi simulando un blocco, sembra fungere bene...non avendo necessità di controllarlo o azzerarlo in parti specifiche del programma, lo azzero direttamente nel ciclo infinito in modo che se va tutto bene viene continuamente azzerato, se dovesse bloccarsi non eseguendo più le istruzioni nel while(1) scatenerebbe il reset
per il software in realtà dovrebbe essere completo salvo giusto qualche ritocco qui e la ma comunque dovrebbe essere funzionante, non posso al momento testarlo integralmente perchè purtroppo devo cambiare pic visto che questo che ho a disposizione ha sullo stesso pin sia un uscita del modulo uart che un uscita dell'spi e non posso utilizzarlo per tutti e due...quindi al momento sono un pò fermo fino all'ordine del materiale che mi occorre
Volevo nel frattempo però chiedere un'informazione, sul portb potrei tranquillamente utilizzare le pull-up interne ma chiedo comunque per ogni evenienza, praticamente sui pin di ICSP, RB6 ed RB7, rispettivamente PGC e PGD, ho due pulsanti...i pulsanti in sè non causano problemi poichè sono normalmente aperti ma supponendo di avere per i pulsanti una resistenza di pull-up esterna e quindi fissa, creerebbe problemi all'ICSP oppure possono star lì tranquillamente?
intanto per chi volesse visionarlo, riporto di seguito il link per scaricare l'intero progetto in mikroc del codice che dovrebbe essere finale, o almeno una "REV 1.0" già funzionante, salvo qualche correzione in fase di prova per la visualizzazione con magari qualche riga o carattere da spostare
www.mediafire.com/download/5d9lv28p1d844c1/Gsm_Logger_45K22.zip
thanks
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
10 Anni 11 Mesi fa #30
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Real Time Clock e settaggio ora......
RB6 e RB7 hanno dei resistori di pull up interni, usa quelli e vai tranquillo.
Se il valore di R e' grande 47K, probabilmente non avrai problemi, a meno di non avere cavi lunghi.
In ogni modo e' meglio evitare.
Perche' non carichi il file zip sul forum, invece di usare link esterni?
Saluti,
Mauro
Se il valore di R e' grande 47K, probabilmente non avrai problemi, a meno di non avere cavi lunghi.
In ogni modo e' meglio evitare.
Perche' non carichi il file zip sul forum, invece di usare link esterni?
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.