Микроконтроллеры зависают: причины. Применение сторожевого таймера. Интерфейсы. Коммуникации. Ввод.Причины зависания микро-контроллеров. Устройства ввода. Интерфейсы (10+) Микроконтроллеры - самоучитель - Зависание. Интерфейсы. Ввод Зависание. Сторожевой таймерЭто, я вам скажу, вещь! Автоматика на то и автоматика, что работает 99.9% времени без присутствия человека. А вдруг датчик не ответил? А вдруг ошибка в алгоритме вызвала сбой и зависание? Контроллер может зависнуть также из-за помех по цепям питания или радиопомех. Чтобы вам спалось спокойнее, в МК живет маленький человечек, который может нажать в экстренном случае на кнопку 'RESET'. Называется он – сторожевой таймер. Это абсолютно неподконтрольная микроконтроллеру штуковина, которая обязательно перезагрузит МК, если в течение определенного времени он не сбросил специальный флаг. Таким образом, вы можете быть уверены, что без вашего участия в критической ситуации, человечек прибежит к кнопке 'RESET' и нажмет ее! Управлять сторожевым таймером вы можете прямо в программе, разрешая его в одних сегментах программы и запрещая в других.
Коммуникации. ИнтерфейсыДля нашего счастья существует целый воз модулей Ethernet, GSM, COM, USB, Bluetooth, радио-, которые можно успешно спаривать с МК и организовывать каналы данных, в т.ч. по радиосвязи. Это может быть использовано для удаленного управления (существуют разработки web-сервера на базе МК), удаленного мониторинга, распределенной системы «умный дом» и так далее и тому подобное. Все ограничено лишь полетом вашей фантазии и квалификацией. Устройства вводаТут выбор опять же ограничен вашей квалификацией и фантазией. Можете использовать любую клавиатуру или просто кнопку, потенциометр или промышленный переключатель. Даже тачпэд. Вопрос только лишь в наличии драйвера к выбранному вам устройству. Если для кнопки драйвер не нужен вообще, то для тачпэда вам необходима будет специальная библиотека функций для взаимодействия с этим устройством. В самом плохом случае – дейташит перед вами и сами, сами, сами. Пишем код. Простой пример схемыБольшинство из вышеназванных расширений и возможностей мы постараемся более детально рассмотреть в следующих статьях. А пока попробуем сделать малюсенький примерчик. Он исключительно логический. Токоограничивающих резисторов тут нет, светодиоды применены просто как класс устройств. Цепи питания в ISIS прорисовывать не обязательно. Достаточно указать, что выводы подключены либо к шине +5В, либо VCC/VDD. Кварцевый резонатор в данном случае нам тоже не нужен. МК будет тактироваться, используя внутренний генератор тактовой частоты. Он не очень стабильный, но для наших потребностей это совершенно не важно. В свойствах микроконтроллера в ISIS необходимо выбрать режим использования внутреннего RC-генератора. При программировании реального МК это делается с помощью фьюзов (fuses). О них немного позже. Использовать я буду Proteus 7 Pro и CodeVisionAVR 2.05 Pro. Что мы с вами сделаем? Попробуем поработать над тем, чтобы принять входной сигнал, например, с кнопки. И сгенерировать выходной сигнал. Например, зажечь светодиод. Это универсальная штука. Потому как вместо кнопки может быть все, что душе угодно. А вместо светодиода – любое исполнительное устройство. Возьмем для этой небольшой задачки 'малюсенький' микроконтроллер ATMega8. Нам больше и не нужно. Порты обозначаются следующим образом: Порт А будет PA, порт B – PB. Обычно каждый порт состоит из 8 выходов (1 байт) и каждый выход (PIN) будет нумероваться как PB0-PB7. Через слеш (/) указываются дополнительные функции порта. Например, PD0/RXD. Это значит, что этот порт может выполнять работу регистра общего назначения, а также служить для передачи данных USART. Или PC6/RESET. Тут вам должно быть понятно без объяснений. Конечно же, этот порт будет использоваться как шина для подачи сигнала 'RESET', приводящего к перезагрузке МК. Сделаем контур сброса, индикатор питания и нашу кнопку мы подключим на вывод PB0. Почему? Да просто так. Совершенно произвольно. Безусловно, в более крупных проектах следует очень вдумчиво относиться к выбору портов МК. От этого зависит и удобство кодирования, и доступные функции на порту. О дополнительных функциях портов мы поговорим в следующей части. К сожалению в статьях периодически встречаются ошибки, они исправляются, статьи дополняются, развиваются, готовятся новые. Подпишитесь, на новости, чтобы быть в курсе. Если что-то непонятно, обязательно спросите! Еще статьи Полевой транзистор. Определение. Обозначение. Типы, виды, категории, к... Тиристорный выключатель, переключатель, коммутатор. Тиристор (тринисто... Трансформатор розжига, поджига. Запальный блок. Искра, искровой разряд... Транзисторы КТ503, 2Т503. Справочник, справочные данные, параметры, цо... Повышающий импульсный источник питания. Онлайн расчет. Форма. Подавлен... Пушпульный импульсный преобразователь напряжения, источник питания. Ко... Инвертирующий импульсный преобразователь напряжения. Силовой ключ - би... Термодатчик, датчик температуры, LM135, LM235, LM335, LM335Z, LM335AZ,... Оглавление статьи Виды, типы микроконтроллеров. Особенности. Выбор. Преимущества схем на микроконтроллерах Дисплей. Система отображения, показа информации Управление силовыми нагрузками Управление двигателями постоянного тока и активной нагрузкой переменного. ШИМ. |