Mon, 2012-01-30 23:07 — KiberGus
Наконец отловил самую непослушную ошибку в программе управления светом. На маленьких яркостях лампока все время подмигивала. Последние две недели я только на нее и охотился. На самом деле я поправил сразу несколько ошибок, приводивших к такому эффекту. Ну не привык я писать программы, которым нужно работать в режиме довольно жесткого реального времени. Например, только позавчера до меня дошло, что главный цикл программы должен работать не как можно быстрее, а как можно равномернее, причем время начала цикла должно быть синхронизованно с колебаниями тока в электрической цепи. А сегодня я обнаружил, что у меня не совсем четко срабатывает детектор нуля и полученные с него времена нужно усреднять. Если бы я лучше разбирался в электронике возможно не пришлось бы писать такой сложный код предсказания времени перехода напряжения через ноль. А неделю назад меня осенило, что намного проще переписать библиотечные функции работы с таймером, чтобы они использовали нужный мне таймер, чем пытаться синхронизировать работу двух таймеров разной разрядности.
Но в целом я очень доволен. Программирование микроконтроллеров оказалось весьма увлекательным занятием.