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).

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.

Se questa pagina ti è piaciuta o ti è stata utile, potresti dedicare un minuto a leggere quest'altra pagina, dove ho elencato alcune cose che potrebbero farmi contento? Grazie :)