Manipulação do RTC DS1307 com PIC16F ou PIC18F
Inclua os arquivos fontes no seu projeto e faça a chamada no seu código:
#include "DS1307.h"
Dentro no seu método em loop, realize a chamada do DS1307_Loop(), passando um intervalo coerente com seu projeto.
int main()
{
// ...
DS1307_Init();
while (1)
{
DS1307_Loop(1000);
// ...
}
}
Não esqueça de adicionar os DS1307.h
e DS1307.c
na compilação.
Este projeto depende das bibliotecas I2C
, Conversions
e Time
oferecidas pelo MikroC, não esqueça de ativá-las.
ℹ️ TimeStruct
yy
- ano (2000 até 2099).mm
- mês (1 até 12).md
- dia do mês (1 até 31).wd
- dia da semana (1 é domingo, 2 é segunda... 7 é sábado).hh
- horas (0 a 23).mm
- minutos (0 a 59).ss
- segundos (0 a 59).
Todos os campos são do tipo unsigned short
.
Inicia o barramento I2C e realiza a primeira chamada para DS1307_GetDate().
🔀 DS1307_SetDate(TimeStruct *)
Recebe um parâmetro que é um ponteiro para um TimeStruct.
Configura a hora do relógio conforme o TimeStruct passado.
Recebe um parâmetro que é um ponteiro para o TimeStruct.
Lê o relógio e atualiza as informações no TimeStruct.
🔄 DS1307_Loop(unsigned short)
Verifica se o intervalo passado por parâmetro, foi alcançado, então chama o DS1307_GetDate() passando o ponteiro para um TimeStruct interno da biblioteca (DS1307_instance) e em seguida atualiza o timestamp interno (DS1307_timestamp).
🔂 DS1307_Now()
Não recebe parâmetros.
Retorna o TimeStruct interno da biblioteca (DS1307_instance).
🔢 DS1307_Timestamp()
Não recebe parâmetros.
Retorna o timestamp interno da biblioteca (DS1307_timestamp).
Felipe Pontes | Francisco Bento |
Este projeto é licenciado pela Licença MIT, veja LICENSE para mais detalhes.