|
судя по поведению программы - что в прерывание попадало правильное значение среднего - а в общем цикле - не очень правильное. Или алгоритм подсчёта среднего не даёт что надо. то есть такой вариант например - когда стояло в прерывании за 20 мс среднее вычислялось - фоновая задача его принимала и принимала решение. а теперь - среднее всё равно считается за 20 мс - но фоновая задача этого не знает. она простоянно работает. она посмотрела - допустим не хватает - добавила. Однако ж не ждёт нового цикла пока отработает система. а опять проверяет. есс-но ничего не изменилось - период не прошёл - тиристоры не включились не выключились. фоновая задача ещё добавила. и опять проверила. вот и молотит оно чёрти что.Может быть такой баг?
E-mail: info@telesys.ru