ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
28 августа
313670
amusin (10.03.2012 20:53, просмотров: 10685)
Защита от слишком долгого ногодрыга. Есть нагрузка, которую МК включает на какое-то номинальное время (порядок - 20-30 мс). Увеличивать время выше предельного (больше номинального на сколько-то) нельзя - спалим нагрузку. Иногда необходимо включать на время, меньшее номинального. Задача - защитить нагрузку от сбоя МК, при котором импульс управления будет слишком длинным. Да и при отладке можно ненароком остановиться в момент выдачи импульса. Возможные решения: 1. Сделать выдачу импульса с заполнением более короткими импульсами, пропустить через диф. цепочку с выпрямителем и т.д. Вариант не годится, т.к. нет гарантии, что импульсы прекратятся (формируются в прерываниях). Аппаратно (ШИМом и т.п.) их тоже выдавать нельзя - МК будет фигачить вообще не смотря ни на что. 2. Одновременно с включением запускать одновибратор, который будет разрешать прохождение управляющего импульса. Использование 555-го таймера под большим вопросом. Импульс для запуска таймера должен закончиться раньше времени заряда C, иначе имеем единицы на входах его SR-триггера. А как раз от длинного импульса и нужна защита. 3. Перед включением запускать встроенный аппаратный таймер и в его прерывании завершать импульс. В основной программе выключать когда надо (номинально или коротко), а эта ISR на всякий пожарный будет. Главное, брейкпойнты в ней не ставить. Вот чешу репу. Вариант 3 самый простой, но нет ли у него слабого места? На время ресета МК есть подтяжка ноги управления куда надо.