stm32f071 + ds3231
Добрый день. Помогите решить проблему плиз.
Читаю с часов данные сразу все регистры. И не постоянно, но раз в 10 сек то раз в минуту читает то на один элемент в массиве больше то меньше. И так постоянно прыгают показания часов. Лог анализатором посмотрел что после чтения последнего регистра еще передается 22. Вот когда читает неправильно то в первом элементе массива 22 пишется.
Читаю 18 регистров. Массив на 19 элементов сделал.
Если читает 18 то всё норм. Если читает 19 то например
buffer[0] = 22
buffer[1] = секунды
buffer[2] = минуты
buffer[3] = часы
а если 18 читает то нормально в массив ложится
buffer[0] = секунды
buffer[1] = минуты
buffer[2] = часы
buffer[3] = день недели
Записал 10 сек на лог анализатор. При этом было раза 4-5 дергание индикации... Проверил лог анализатором. По нему всё четко. Может в функции перевода часов чтото не правильно делаю...? Но в режиме отладки весь буффер из 19 элементов скачет на 1 элемент вниз, то есть в него пишется не с нулевого элемента, а с первого. А потом снова с нулевого.
Еще на шине висят два дисплея ssd1306. Они работают без галюнов. Их отключил - ничего не меняется. Игрался с I2C1-›TIMINGR
Если тайминги выставляю на 100 кГц то после рестарта микрухи сначала читает как надо а потом в течении 10 сек читает стабильно вот так в массив
buffer[0] = 22
buffer[1] = секунды
buffer[2] = минуты
buffer[3] = часы
P.S. капец 3 дня сидел разбирался и после поста разобрался.....
Последний раз редактировалось miwutka; 28.10.2018 в 01:17.
|