ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
22783
student_andrew (25.02.2005 00:24, просмотров: 457)
вопрос к спецам по ds1302, немогу понять в чем ошибка Собрал схему на mega32(1Mhz) и на DS1302, батарейку не подключал. Пытаюсь запустить не получаеться #define SCLK PORTC_Bit1 #define IOR PINC_Bit2 #define IOW PORTC_Bit2 #define RST PORTC_Bit3 int main(void) ... data_write(0x8E, 0x00); // WP bit should be cleared before attempting to write to the device. data_write(0x80, 0x00); // set sec(start clock) ... /****************************************/ void data_write(char addr, char data) { char i=8; DDRC = 0x0E; RST = 1; do { IOW = addr; addr>>=1; SCLK = 1; SCLK = 0; }while(--i>0); i=8; do { IOW = data; data <<= 1; SCLK = 1; SCLK = 0; }while(--i>0); RST = 0; DDRC = 0; } /****************************************/ char data_read(char addr) { char data=0; char i=8; DDRC = 0x0E; // загрузка адреса нужного регистра RST = 1; do { IOW = addr; addr>>=1; SCLK = 1; SCLK = 0; }while(--i>0); IOW = 0; DDRC_Bit2 = 0; i=8; do { if(IOR == 1) data |= 0x80; data >>= 1; SCLK = 1; SCLK = 0; }while(--i>0); RST = 0; DDRC = 0; return data; }