Mais um exemplo no MikroC.

Nesse exemplo mostro como acessar os valores do RTC [Real Time Clock ou Relogio de Tempo Real], a partir do MikroC com sua biblioteca de acesso I2C por software.

Nesse exemplo uso os Pinos RC0 e RC1 para fazer esse acesso, mas podem ser utilizados quaisquer pinos que trabalhem como I/O do PIC.

[sections] [section title=”Código Fonte”]

// Conexões para I2C por Software
sbit Soft_I2C_Scl at RC1_bit;
sbit Soft_I2C_Sda at RC0_bit;
sbit Soft_I2C_Scl_Direction at TRISC1_bit;
sbit Soft_I2C_Sda_Direction at TRISC0_bit;
// End Software I2C connections
void write_ds1307(unsigned short address,unsigned short w_data)
{
GIE_bit = 0; // disable interrupts
Soft_I2C_Start(); // issue I2C start signal
//address 0x68 followed by direction bit (0 for write, 1 for read) 0x68 followed by 0 –> 0xD0
Soft_I2C_Write(0xD0); // send byte via I2C (device address + W)
Soft_I2C_Write(address); // send byte (address of DS1307 location)
Soft_I2C_Write(w_data); // send data (data to be written)
Soft_I2C_Stop(); // issue I2C stop signal
GIE_bit = 1; // enable interrupts
}

unsigned short read_ds1307(unsigned short address)
{
unsigned char value;

GIE_bit = 0; // disable interrupts
Soft_I2C_Break();
Soft_I2C_Start();
Soft_I2C_Write(0xd0); //address 0x68 followed by direction bit (0 for write, 1 for read) 0x68 followed by 0 –> 0xD0
Soft_I2C_Write(address);
Soft_I2C_Start();
Soft_I2C_Write(0xd1); //0x68 followed by 1 –> 0xD1
value=Soft_I2C_Read(0);
Soft_I2C_Stop();
Soft_I2C_Break();
GIE_bit = 1; // enable interrupts
return(value);
}

void read_data()
{
sec = read_ds1307(0); // read second
minute = read_ds1307(1); // read minute
hour = read_ds1307(2); // read hour
day = read_ds1307(3); // read day
date = read_ds1307(4); // read date
month = read_ds1307(5); // read month
year = read_ds1307(6); // read year
}

[/section] [/sections]

-Não esquecer de selecionar a biblioteca SOFT_I2C no MikroC.
-Não esquecer de declarar as variáveis onde serão colocados os valores lidos

Espero que ajude,


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[PIC] Acessando o RTC DS1307 com o MikroC
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: