Moderadores: andre_luis, 51, guest2003, Renie
void programa_i2c(){
I2C_Init(100000); // iniciliza I2C com frequencia de 100KHz
I2C_Start(); //inicializa a comunicação I2c
I2C_Wr(0xD0); //endereço fixo para a categoria do DS1307: 1101000X, onde x = 0 é para gravação, e X = 1 para leitura.
I2C_Wr(0); //endereço onde iremos começar a programação do relógio, neste caso é o endereço dos segundos.
I2C_Wr(0x25); //inicializa a contagem dos segundos apartir de 25.
I2C_Wr(0x44); //inicializa a contagem a partir de 44 minutos.
I2C_Wr(0x08); //inicializa a contagem das 08:00hs (formato 24 horas).
I2C_Wr(0x06); //inicializa a contagem da sexta feira da semana
I2C_Wr(0x14); //inicializa a contagem do dia 14 do mes
I2C_Wr(0x10); //inicializa a contagem do mês de setembro
I2C_Wr(0x07); //inicializa a contagem do ano 07.
I2C_Stop(); //condição de finalização da comunicação I2C
}
#define BIT6 6
void main ( void )
{
unsigned char horas = 0, address = 0x00;
horas = 0x21; // 21h em BCD
address = 0x02;
horas = horas | (1<<BIT6); // seta o bit 6 de horas
DS1307_escrever (address, horas);
horas = horas & ~(1<<BIT6); // reseta o bit 6 de horas
DS1307_escrever (address, horas);
while ( 1 );
}
PORTB = segundos; //a variável "segundos" recebe dados do endereço 0x00 do DS1307
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante