avr123.nm.ru писал(а):...да чего спрашивать - просто прицепи архив с коментарием. Только посмотри может есть топик более подходящий ?
Ну держите, только там нет контроля вводимого адресса! Это легко исправить и кто захочет может это сделать. Перед тем как использовать эту библиотеку, нужно инициализировать I2C (#include <i2c.h>), кто незнает как, может прочесть в хелпе.
//************************************************
//*** Дополнительные опции при работе с DS1307 ***
//************************************************
#ifndef _DS1307_Add_
#define _DS1307_Add_
//Запись в RAM
// Адрес --> (adr)
// Информация --> (data)
void rtc_WriteRAM(unsigned char adr, unsigned data)
{
i2c_start();
i2c_write(0xd0);
i2c_write(adr);
i2c_write(data);
i2c_stop();
}
//Чтение из RAM
// Адрес --> (adr)
// Информация <-- (data)
unsigned char rtc_ReadRAM(unsigned char adr)
{
unsigned char temp;
i2c_start();
i2c_write(0xd0);
i2c_write(adr);
i2c_start();
i2c_write(0xd1);
temp = i2c_read(0);
i2c_stop();
return temp;
}
//Обнуление всех по показаний и RAM
void rtc_reset(void)
{
char i;
rtc_set_time(0,0,0); //Запуск генератора
rtc_set_date(0,0,0);
//Очистка памяти
for (i = 0x08; i < 0x40; i++)
rtc_WriteRAM(i, 0x00);
}
#endif