Пт мар 06, 2015 11:12:26
Пт мар 06, 2015 11:24:14
Можно поставить делитель частоты на триггере(-рах).four square - wave frequencies (1Hz, 4kHz, 8kHz, 32kHz)
Пт мар 06, 2015 12:01:33
Пт мар 06, 2015 12:08:42
Пт мар 06, 2015 12:49:23
WiseLord писал(а):А зачем завязывать опрос кнопок на внешнее тактирование от DS-ки и прерывание на INT1?
Сб мар 07, 2015 09:34:50
Сб мар 07, 2015 12:49:43
Сб мар 07, 2015 14:08:51
Сб мар 07, 2015 14:29:45
Сб мар 07, 2015 14:37:42
/****************************************************************/
static unsigned char Read_Byte(unsigned char addr){
unsigned char ret=0;
I2C_Start();
I2C_Write(0xD0);
I2C_Write(addr);
I2C_Stop();
I2C_Start();
I2C_Write(0xD1);
ret=I2C_Read(0);
I2C_Stop();
return ret;
}
/****************************************************************/
static char Write_Byte(unsigned char addr, unsigned char d){
I2C_Start();
if(!I2C_Write(0xD0)){
I2C_Stop();
return 0;
}
I2C_Write(addr);
I2C_Write(d);
I2C_Stop();
return 1;
}
/****************************************************************/
Сб мар 07, 2015 16:36:14
Старт -> Передача адреса -> Рестарт -> Читаем байты -> Стоп
Сб мар 07, 2015 19:19:00
/****************************************************************/
void DS1307_Read_Struct(void){
unsigned char i, *p=(unsigned char*)&ds1307;
I2C_Start();
I2C_Write(0xD0);
I2C_Write(0x00);
I2C_Stop();
I2C_Start();
I2C_Write(0xD1);
for(i=0;i<8;i++){
*p++=I2C_Read(1);
}
*p=I2C_Read(0);
I2C_Stop();
}
/****************************************************************/
void DS1307_Write_Struct(void){
unsigned char i, *p=(unsigned char*)&ds1307;
I2C_Start();
I2C_Write(0xD0);
I2C_Write(0x00);
for(i=0;i<8;i++){
I2C_Write(*p++);
}
I2C_Stop();
}
/****************************************************************/
Сб мар 07, 2015 19:27:55
Рабочие функции чтения и записи нескольких байтов:
Сб мар 07, 2015 19:37:06
Чт мар 12, 2015 06:54:54
Чт мар 12, 2015 09:02:57
Чт мар 12, 2015 09:19:03
Чт мар 12, 2015 09:37:48
Чт мар 12, 2015 10:08:28
Чт мар 12, 2015 12:32:07