- Главная
- Форум
- О компании
- Новости компании
- Синхронизация таймера с АЦП на бюджетном контроллере STM8L
Синхронизация таймера с АЦП на бюджетном контроллере STM8L
Освоить самый популярный, лучший по сочетанию цена – возможности 8-битный контроллер STM8L051 / 151 – дело чести для любого разработчика. Инженеры компании IC-Contract подготовили несколько лабораторных работ и выложили исходники для быстрого освоения всеми желающими.
Уметь запускать АЦП – это хорошо, а вот запускать АЦП вовремя – намного лучше. Это позволяет экономить энергию, производить измерения жёстко привязанные ко времени, синхронизировать измерения к работе остальной системы контроллера. В отличии от обычных контроллеров, где привязка старта преобразования к таймеру делается через прерывание переполнения, контроллеры семейства STM8L имеют аппаратные связи на уровне периферии минуя ядро. Поэтому привязка события таймера к старту аналого-цифрового преобразования намного жёстче и не требует отвлечения ресурсов ядра для запуска.
Какие могут быть события таймера? Переполнение, срабатывание выхода сравнения, запуск. К этим событиям таймеров 1 и 2 можно привязать запуск преобразования АЦП. Для связывания в настройках АЦП необходимо указать, что он будет запускаться внешним триггером:
Рисунок 1. АЦП запускается передним фронтом внешнего триггера 3
Настройки таймера так же подразумевают разрешение выдачи сигнала события за его пределы. Ниже приведён листинг такой настройки:
Рисунок 2. Настройка таймера на генерацию внешних событий
В остальном - проект такой же как и предыдущий, где АЦП работал постоянно. Поскольку конверсия аналогового сигнала жёстко привязана к периоду сигнала, то результат будет всегда одинаков, несмотря на то, что на линии имеет место ШИМ сигнал.
Исходные файлы текста программы, написанной под STVD+Cosmic можно взять на форуме.
Компания IC-Contract желает вам успешных разработок.
Получить более подробную информацию по продукции STMicroelectronics вы можете, обратившись:
E-mail: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Телефон: (343) 372-92-30
Задать вопрос техподдержке вы можете на нашем форуме.