Evgeni 0 15 июня, 2021 Опубликовано 15 июня, 2021 · Жалоба Друзья Добрый день. Есть такой вопрос. Возможно ли реализовать сигналы разной длительности с помощью ШИМ или таймера. Нужно формировать импульсы не зависимо от основного потока и желательно с минимальной задержкой. Возможно ли записать массив задержек из которого таймер просто будет брать значение самостоятельно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasil_Riabko 11 15 июня, 2021 Опубликовано 15 июня, 2021 · Жалоба 56 minutes ago, Evgeni said: Друзья Добрый день. Есть такой вопрос. Возможно ли реализовать сигналы разной длительности с помощью ШИМ или таймера. Нужно формировать импульсы не зависимо от основного потока и желательно с минимальной задержкой. Возможно ли записать массив задержек из которого таймер просто будет брать значение самостоятельно. Вы сами свой вопрос прочитали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 15 июня, 2021 Опубликовано 15 июня, 2021 · Жалоба Если частота небольшая, то все просто. Помещаем в память таблицу и в обработчике прерывания от таймера (по переполнению) выбираем из нее нолики и единички, которые и выводим в порт. А так, чтобы таймер делал это сам - насколько я помню, в АВР такого нет ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 16 июня, 2021 Опубликовано 16 июня, 2021 · Жалоба Можно настроить таймер на режим "Сброс по совпадению" и ножка таймера будет переключаться сама. Останется в памяти только массив длительностей расположить и при каждом прерывании обновлять таймер. Годится не для быстрых (импульсы порядка длительностей тактов работы CPU вряд ли возможно устойчиво получить без джиттеров) последовательностей. Контроллер то какой? А то AVR-ок нынче много, может и есть чего аппаратно-интересного в новых версиях... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 16 июня, 2021 Опубликовано 16 июня, 2021 · Жалоба 20 часов назад, kovigor сказал: А так, чтобы таймер делал это сам - насколько я помню, в АВР такого нет ... Зато есть двойная буферизация регистров OCR для PWM, как раз на этот случай. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MDD 0 16 июня, 2021 Опубликовано 16 июня, 2021 · Жалоба В ATxmega можно сделать через DMA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Evgeni 0 17 июня, 2021 Опубликовано 17 июня, 2021 · Жалоба Да через dma это понятно. Контроллер atmega168. Думал на нем есть DMA. Хотелось бы что таймер сам генерил импульсы и инкриментировал адрес массива. 7 часов назад, rx3apf сказал: Зато есть двойная буферизация регистров OCR для PWM, как раз на этот случай. А можете подробнее рассказать что это такое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 18 июня, 2021 Опубликовано 18 июня, 2021 · Жалоба Значение, записываемое в OCR, попадает не сразу в него, а в буферный регистр, из которого переписывается в реальный регистр сравнения строго в определенный момент времени, что позволяет избежать всяких глитчей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий_Нд 0 22 ноября, 2021 Опубликовано 22 ноября, 2021 · Жалоба Доброго дня Уважаемые. Подскажите пожалуйста, я на рисунке ничего не перепутал для настроек ШИМ Atmega8? Спасибо ___________ Юрий. https://ibb.co/sQh49gd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Юрий_Нд 0 22 ноября, 2021 Опубликовано 22 ноября, 2021 (изменено) · Жалоба Доброго дня Уважаемые. Подскажите пожалуйста, я на рисунке ничего не перепутал для настроек ШИМ Atmega8? Спасибо ___________ Юрий. Изменено 22 ноября, 2021 пользователем Юрий_Нд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться