Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 07.06.2011, 07:13   #1
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию ШИМ через таймер в LPC

Доброго времени суток! Такая проблемка: проц LPC2368 хочу шим по T2 регистр совпадения MR2.3. Конфиг такой:
PINSEL0|=_BV(19); PINSEL0|=_BV(1; // MAT2.3

T2PR = 0x00000000; // предделитель

T2TCR|=_BV(1); // сброс таймера
T2TCR&=~_BV(1);

T2MCR|=_BV(7); // сброс MR2

T2MR3=10;
T2MR2= 40; //Set the cycle time

T2EMR&= ~_BV(11);
T2EMR|= _BV(10);

T2TCR|=_BV(0); // разрешение таймера

Все время вывод либо в нуле либо в единице в зависимости от конфига регистра T2EMR, есть варианты сброса в 0 и установки в 1 вывода при совпадении счетного регистра и регистра T2MR3. А при конфиге T2EMR для инверитрования состояния вывода - получаю меандр, что не удовлетворяет моей задачи, мне нужна изменяемая ширина импульса. Подскажите, господа знатоки, что я делаю не так?
Реклама:
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 07.06.2011, 11:35   #2
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Простите за странный вопрос - почему бы не использовать специально предназначенный для этой цели модуль PWM ?
Это не AVR, нет в его таймерах режима PWM. Если уж появилась такая необходимость, то сбрасывать выходы компаратора придётся вручную...
Собственно UM10211 страница 599 про управление компараторами. Стр. 562 - модуль PWM...
omercury вне форума  
Непрочитано 07.06.2011, 16:04   #3
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

В том то и дело, что сам модуль ШИМ занят, а мне надо регулировать яркость подсветки: не приспосабливать для этого шим, вот я и спрашиваю. Непонятно, почему работает при инверитировании вывода, а при установке его в ноль или единицу не работает.

Так Вы предлагаете вручную из прерывания сбрасывать или как?
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 07.06.2011, 16:48   #4
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Сообщение от serb-radio Посмотреть сообщение
вручную из прерывания сбрасывать
По переполнению таймера сбрасывать(или устанавливать - как настроите). Иначе не выходит...
omercury вне форума  
Непрочитано 09.06.2011, 09:39   #5
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Чето непонятно: а почему при инверитвровании вывода работает, а при переключении в 1 или 0 не работает?
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 14.06.2011, 10:44   #6
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Люди, подскажите, почему при инвертировании ноги при совпадении с счетным регистром все работает, а установка в 1 или ноль нет??? долбусь с этим который день
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 16.06.2011, 00:02   #7
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Сообщение от serb-radio Посмотреть сообщение
Люди, подскажите, почему при инвертировании ноги при совпадении с счетным регистром все работает, а установка в 1 или ноль нет??? долбусь с этим который день
Не долбитесь. Без толку. Так он устроен. Ну подумайте - по срабатыванию компаратора происходит инверсия выхода. Всё правильно. На выходе меандр.
Если включен режим с установкой (сбросом), то при срабатывании компаратора выход установится в "1"(сбросится в "0"). По следующему срабатыванию выход тоже установится(сбросится) Нет там автосброса. Это делается в режиме PWM, а его нет в этих таймерах. Для этого есть специальный модуль.
Только вручную. Больше никак.
omercury вне форума  
Непрочитано 17.06.2011, 14:48   #8
serb-radio
Гражданин KAZUS.RU
 
Регистрация: 01.01.2007
Адрес: Таганрог
Сообщений: 571
Сказал спасибо: 26
Сказали Спасибо 213 раз(а) в 91 сообщении(ях)
serb-radio на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Уважаемый omercury, а не посоветуете как ШИМ через таймер сделать самым оптимальным образом, я делаю через прерывания вот так:

void T2COMP_vect (void) __irq
{
i_bl++;
if (i_bl==0)
{
FIO0SET|=_BV(LCD_BL);
}
if (i_bl==bl_int) FIO0CLR=_BV(LCD_BL);

T2IR|=_BV(0);
VICVectAddr = 0;
return;
}

но оно тормозит (((
__________________
То, что нас не убивает - делает нас сильнее
serb-radio вне форума  
Непрочитано 18.06.2011, 16:21   #9
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: ШИМ через таймер в LPC

Насколько понял, TOP - T2MR2.
В стартапе T2MCR |=(1‹‹MR2I)|(1‹‹MR2R) //Прерывание по компаратору 2.2, сброс счётчика
В обработчике T2EMR &=~(1‹‹EM3) //Сброс бита. Он просто транслируется на ножку МК

Последний раз редактировалось omercury; 18.06.2011 в 16:39.
omercury вне форума  
Сказали "Спасибо" omercury
serb-radio (18.06.2011)
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus не хочет "дружить" с ШИМ PIC16F877. Почему finiki Микроконтроллеры, АЦП, память и т.д 6 18.08.2009 12:32
Вопрос по ШИМ на нулевом таймере AVR. chapa Микроконтроллеры, АЦП, память и т.д 10 09.02.2009 18:31
Регулятор шим для шд5 Pavelrb Автоматика и аппаратура связи 6 27.12.2008 22:34
Помогите нужна схема игрового руля через USB Himmar Поиск схем. Делимся схемами 1 23.03.2007 11:25
[Решено] Таймер для Ксеноновых ламп ближнего света Гость Электроника средств транспорта 6 17.01.2006 22:51


Часовой пояс GMT +4, время: 01:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot