Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PWM выход на пин через таймер на lpc17xx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
pitt
User manual не дает достаточно информации. Если бы кто-нибудь поместил пример кода как вывести PWM на любой матчинг пин(matching pin) от любого таймера(кроме, естественно, собственно PWM модуля) и, желательно, без прерываний... Просто, генерация пульса.

Спасибо.
_Артём_
Цитата(pitt @ Oct 24 2012, 16:09) *
User manual не дает достаточно информации. Если бы кто-нибудь поместил пример кода как вывести PWM на любой матчинг пин(matching pin) от любого таймера(кроме, естественно, собственно PWM модуля) и, желательно, без прерываний... Просто, генерация пульса.

Спасибо.

Примеры идут вместе со средой разработки (LPCXpresso).
Ищите c:\nxp\LPCXpresso_4.3.0_1023\lpcxpresso\Examples\NXP\LPC1000\LPC17xx\NXP_LPCXpresso1769_MCB1700_2011-02-11.zip
pitt
Цитата(_Артём_ @ Oct 24 2012, 10:34) *
Примеры идут вместе со средой разработки (LPCXpresso).
Ищите c:\nxp\LPCXpresso_4.3.0_1023\lpcxpresso\Examples\NXP\LPC1000\LPC17xx\NXP_LPCXpresso1769_MCB1700_2011-02-11.zip

Пожалуйста не предлагайте подобных "ответов". Я изучил их примеры задолго до поста и не нашел ответа.
В приложенном файле(самый близкий пример) все понятно, но, во-первых, не понятно что и как если вооще что-нибудь, происходит с пином, а, во-вторых, похоже, что без прерываний не обойтись...
esaulenka
User Manual даёт ДОСТАТОЧНО информации.

Стандартные таймеры довольно "тупые", без прерываний можно сгенерировать только ШИМ 50%.
Или с любым коэф. заполнения, но с прерыванием в каждом цикле.
pitt
Цитата(esaulenka @ Oct 25 2012, 04:45) *
User Manual даёт ДОСТАТОЧНО информации.

Стандартные таймеры довольно "тупые", без прерываний можно сгенерировать только ШИМ 50%.
Или с любым коэф. заполнения, но с прерыванием в каждом цикле.

Я не понял как таймер управляет пином. Все остальное действительно в мануале есть. Код пожалуйста.
esaulenka
Какой там код...
Собственно, нога MATn.x будет полностью повторять состояние бита EMx регистра TnEMR.
Надо сконфигурировать таймер, чтоб считал, и выставить в TnEMR условие, по которому изменяется EMx.
Этот бит также можно изменять вручную, в прерывании.

50% - просто toggle bit, все остальные значения - в прерывании сбрасываем, автоматом устанавливаем (или наоборот, как удобнее).
pitt
Цитата(esaulenka @ Oct 25 2012, 10:35) *
Какой там код...
Собственно, нога MATn.x будет полностью повторять состояние бита EMx регистра TnEMR.
Надо сконфигурировать таймер, чтоб считал, и выставить в TnEMR условие, по которому изменяется EMx.
Этот бит также можно изменять вручную, в прерывании.

50% - просто toggle bit, все остальные значения - в прерывании сбрасываем, автоматом устанавливаем (или наоборот, как удобнее).

Все верно, сам разобрался. Кроме 50% ни хрена без прерываний не выйдет. "ну и гадость эта ваша заливная рыба...". Это я про NXP...Все у них через A-hole.
RabidRabbit
Если так хочется через ж, воспользуйтесь, к примеру, ЦАПом wink.gif А вообще, парочка выходов PWM делит ноги с выходами от таймера, так что вывести PWM на matching pin проблемы, вроде, не составляет...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.