В общем такое дело. Модуль часов на ds3231. Часы работают, время/дата записывается и читается. Все ок.
Но есть необходимость включить режим ежеминутного прерывания. И вот тут засада засадная.
По даташиту необходимо в регистры 0x0B, 0x0C и 0x0D записать 0x07. Что собственно и делается в виде:
Код: Выделить всё
uint8_t temp= 0;
temp |= (1 << DS3231_A2M2);
ds3231_write_reg(DS3231_ALARM_2_MIN,temp);
ds3231_write_reg(DS3231_ALARM_2_HOR,temp);
ds3231_write_reg(DS3231_ALARM_2_DAY,temp);Затем разрешаю прерывания по второму будильнику и собственно прерывания
Код: Выделить всё
temp= 0;
temp |= (1 << DS3231_A2IE)|(1 << DS3231_INTCN);
ds3231_write_reg(DS3231_CONTROL,temp); // запуск прерывания будильника 2
Я наверное не вижу чего-то самого главного в даташите? Может надо еще что-то включить/выключить в ds3231?


