Схема представляет из себя двухканальный термоконтроллер на базе aurdiuno(mega2560), пары ds18b20, LCD, зуммера итп.
Собственно основная проблема - управление нагревателями. Мне не хочется использовать ШИМ, т.к. есть ощущение, что от ВКЛ-ВЫКЛ-ВКЛ-ВЫКЛ-ВКЛ-ВЫКЛ ему поплохеет. Вместо этого использую следующую логику. Если мощность должна быть 70%, то в течении 0.7с сигнал на ножке есть, а в течении 0.3с его нету. Т.е. одно включение и выключение в секунду.
Собственно тут сразу встает вопрос: а как это нормальным образом организовать ?
Через таймер ? Но что будет, когда таймер сработает в одно время с приходом информации с термо-датчиков ?
Температура будет измерена некорректно ?
Стремно как-то выглядит...
А если во время пищания пищалки ?
Особенно учитывая, что хочется с разрешением 0.01с управлять, и при этом иногда в обработчике будут ноги дергаться,
что как я понимаю занимает немало времени.
Пробовал встраивать в основной loop, используя millis() и считая их.
Оно работает, но как-то дюже странно, похоже, что другие части loop подтормаживают работу этого самодельного ШИМа,
(там, где получаю температуру с датчиков итп) в результате точность плохая и система не очень качественно стабилизируется.
ЗЫ. Есть ли какой-то профайлер для определения того, сколько какие вызовы занимают времени-тактов ?
Речь не об установки кучи принтов с текущем временем, а именно об нормальном IDE, который
бы считал это самостоятельно и представлял в удобном виде.
Срабатывание таймеров-прерываний "не вовремя".
- Реклама
- Engineer_Keen
- Друг Кота
- Сообщения: 3872
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Срабатывание таймеров-прерываний "не вовремя".
На время опроса датчика прерывание можно отключить.Nixxi писал(а): Через таймер ? Но что будет, когда таймер сработает в одно время с приходом информации с термо-датчиков ?
Температура будет измерена некорректно ?
Стремно как-то выглядит...
А если во время пищания пищалки ?
Чтобы дернуть ногу нужна всего пара тактов, это 250нс при 8МГц тактовой.Nixxi писал(а): Особенно учитывая, что хочется с разрешением 0.01с управлять, и при этом иногда в обработчике будут ноги дергаться,
что как я понимаю занимает немало времени.
Re: Срабатывание таймеров-прерываний "не вовремя".
Сдается мне, что именно там "оно и ждет"(библиотека DallasTemperature).Engineer_Keen писал(а): На время опроса датчика прерывание можно отключить.
И, собственно, нафига тогда всё городить, если любой опрос датчика будет приводить к тому,
что регулирование будет нарушено
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Срабатывание таймеров-прерываний "не вовремя".
Перепишите общение с датчиком на другой такт самостоятельно - 1 мс вполне достаточно и для сброса - и прочитать - выдать байт.

