Tak hotovo. Problém vyřešen. Kdyby po tom někdy někdo pátral, nebo jen ho to tak zajímalo, tak řešení je prosté: Musí se upravit následující:
char ds1307_addr[8];
for (i=0; i<8; i++) {
if (i == 2) {
hour_format=dec2bcd(ds1307_addr*);
if (hour_mode) {
hour_format |= (1 << 6);
if (ampm_mode)
hour_format |= (1 << 5);
else
hour_format &= ~(1 << 5);
} else {
hour_format &= ~(1 << 6);
}
i2c_write(hour_format);
} else {
i2c_write(dec2bcd(ds1307_addr*));
}
}
po tady těch drobných úpravách už funguje zápis:
ds1307_addr[7] = 0×10;
Write_DS1307();
a ejhle, výstup sqw DS1307 se rozkmitá. Ještě to dneska pro jistotu vyzkouším s atmegou8 a DSkem a dám vědět jak jsem dopadl.
Toto jsem testoval jen v ISIS PROTEUSU.**