DS1307
Questa libreria è vecchia e andava utilizzata insieme alle vecchie librerie I2C. Potrebbe essere possibile fare delle modifiche per essere utilizzata con le nuove routine I2C fornite dall’MPLAB Code Configurator (leggi questo articolo per maggiori informazioni).
Indice dei contenuti
Prerequisiti
PicMicro con modulo MSSP. Hitech C versione > 9.81. Librerie I2C
Utilizzo
Impostare le librerie I2C, come descritto nella relativa pagina. La libreria deve essere impostata per funzionare con un clock di 100KHz.
Non sono necessari settaggi particolari per il DS1307. L’unico settaggio eventualmente da fare è in ds1307.h:
#define RTC_SQOUT 0 |
questo serve a settare il livello di uscita sul pin SQW/OUT. Questo pin permette di avere un’onda quadra, impostabile tramite l’apposita funzione fornita in libreria, oppure un livello di uscita fisso che va quindi impostato con questo define a GND (0) o VCC (1).
Note sul DS1307
Sul pin Vbat (pin 3) del DS1307 va collegata una batteria al Litio da 3V o una cella solare e serve per far continuare a funzionare l’orologio anche in assenza di alimentazione. Con una sorgente di alimentazione da 48mAH il DS1307 può rimanere in funzione per 10 anni. Nel caso non si voglia utilizzare il backup è strettamente necessario collegare questo pin a GND altrimenti il DS1307 non funziona.
Il quarzo da 32768Hz deve avere una capacità di carico di 12.5pF
Funzioni disponibili
void Ds1307Start(void); void Ds1307Stop(void); char Ds1307Mode(void); char Ds1307AmPm(void); void Ds1307SqwOn(char freq); void Ds1307SqwOff(void); char Ds1307ToggleMode(void); char Ds1307Read(char rgstr); char Ds1307Set(char rgstr,char value); void Ds1307SetAll(const char * strng); |
I registri (ore,minuti ecc) sono definiti come costanti in ds1307.h .
La funzione Ds1307SetAll consente di impostare orario e data in un sol colpo nella forma “dDDMMYYHHmmSS”. Esempio:
Ds1307SetAll("7240110233400"); |
Imposta la data a Domenica 24 Gennaio 2010 ore 23:34:00
Download
Prima di utilizzare questa libreria è necessario avere scaricato le routine I2C.