Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Аппаратный шим
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
at90
Народ! Как сделать на меге 16 регулировку яркости светодиода аппаратным шимом без использования прерываний. Просто записывая значения от 0 до 255(можно больше).

help.gif
prottoss
Цитата(at90 @ Jan 3 2006, 03:52) *
Народ! Как сделать на меге 16 регулировку яркости светодиода аппаратным шимом без использования прерываний. Просто записывая значения от 0 до 255(можно больше).

help.gif


Код
#define bTC2PreStart (0 << CS22) | (1 << CS21) | (0 << CS20)// значение для прескалера (делителя)
#define bTC2ComOutMode (0 << COM20)| (1 << COM21) // выходной сигнал при совпадении инвертируется
#define bTC2WGMMode  (1 << WGM21)| (1 << WGM20) // FastPWM, после достижения значения 255 счетчик ТС2 обнуляется (хотя можно использовать FaseCorrectPWM)

......................

// Инициализация таймера-счетчика 2

void TC2_Init(void)
{

DDRD  = (1 << PD7); // PD7 - OC2
PORTD  = (1 << PD7);
OCR2  = 0x06; требуемое значение (можно изменять в любом месте программы)

TCCR2  = bTC2WGMMode | bTC2ComOutMode | bTC2PreStart;
}


В зависимости от включения светодиода, при увеличениии значения OCR2, светодиод будет гореть ярче или слабее. Вообще рекомендую почитать даташит, там все понятно, как ясный день. И у АТМЕЛА, скорее всего аппноты есть подобные
at90
Спасибо! Разобрался!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.