Vai al contenuto
PLC Forum


Timer Tempi Lunghissimi


Marco40

Messaggi consigliati

Ciao a tutti rieccomi dopo aver risolto il mio problema precedente e grazie a questo sito , mi trovo con un nuovo quesito , vorrei creare un timer per tempi lunghi con un pic , io pensavo ad un 16f84a , la mia idea è che una volta alimentato il pic la porta RA0 passi a livello logico 1 , trascorso un periodo di un anno questa deve passare a livello logico 0 , e abilitare la porta RA1 portandola a livello logico 1 per qualche ora per poi riportare a 0 questa e riportare a livello lgico 1 la porta RA0 .

Questo perchè vorrei costruire un alimantatore con batteria a tampone che una volta l'anno mi faccia il passagio da rete a batteria per qualche ora per sfruttare al massimo la batteria .

Esite la possibilità per creare un timer simile , ho provato ma il risultato più accettabile è stato di pochi minuti .

Grazie ancora a tutti

Link al commento
Condividi su altri siti


I timers per tempi così lunghi sono ovviamente realizzabili via software. Se hai una base tempi di 1 secondo (per esempio) devi contare 86400 * 365 = 31536000 impulsi.

Una word a 32 bits e' sufficiente per contenere questo dato.

Devi risolvere pero' il problema degli spegnimenti del PIC in caso di assenza di alimentazione.

Ti consiglio di memorizzare il valore corrente al cambio del giorno (a te la scelta insomma) in modo da ripartire da quel punto in caso di riavvio. Per fare questa cosa serve obbligatoriamente un registro retentivo. Se usi una E2PROM devi considerare il numero dei cicli di scrittura che è circa 100000 cicli per molti dispositivi in commercio. La cosa migliora se utilizzi FRAM oppure RAM con batteria tampone .....

Se tu avessi un RTC ovviamente tutto diventa più elegante ...

RT

Link al commento
Condividi su altri siti

si ci avevo pensato ma quando provo a compilare il progrmma per fargli contare 31536000 impulsi. il mio compilatore mi da errore è possibile ?

un RTC ?

se uso un pic 16f84 a la cosa è fattibile ?

Link al commento
Condividi su altri siti

Se definisci un LONG come contatore il compilatore non si puo' accorgere di nessun errore. Eventualmente ci puo' essere un errore di overflow durante il run-time .... per esempio 0xFFFFFFFF -> 0x00000000 .... fermo restando se questo puo' essere considerato errore o meno

Il timer RTC in questo caso deve essere un componente esterno, il mercato e' pieno di questi dispositivi

RT

Link al commento
Condividi su altri siti

io uso come complilatore il mikro C , in linguaggio c per l'appunto domani scrivo un programma e te lo mostro ti posso chiedere questo favore per vedere dove sbaglio?

grazie ancoea RealTime

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...