Pwm (Шим) - Сложности В Работе.

4-09-2013, 12:14 От: admin Посмотрели: 763
Здравствуйте снова))) Сейчас изучаю таймеры и их режим ШИМ.

Контроллер ATMega48PA

вот даташит: http://www.atmel.com...ges/doc2545.pdf



Я так понял ШИМом можно назвать все то, что ограничивает выходящий ток за счет разной длительности нулевых и высоких уровней напряжений (1 и 0). Т.е. когда я пробовал моргать светодиодом и сделал задержку в 0.1 мс и у меня диод горел тускло - это и был примитивный ШИМ)) Только программный без таймеров и прерываний.



Теперь тоже самое нужно повторить с прерываниями от таймера. Из курса АЦП я знаю, что таймер нужно настроить и для этого есть соответствующие регистры.

В даташите написано, что для выходного сигнала таймера можно использовать portB(биты 1,2,3).

Я возьму бит3 OC2



Ещё чуток литературы (Ефстифеева) и я узнал за что отвечает каждый бит управляющих регистров.

Но вот до конца представить структуру программы не могу.



Все что мне нужно вот:

1) регистр прерываний TIMSK

2) счетный регистр TCNT0 (в PWM будет работать как счетчик)

3) регистр управления TCCR0

4) регистр сравнения OCR0

5) регистр TIFR

правильно? Это ведь все регистры настройки?



Такс. Значит мне нужно первым делом определится какой счетчик использовать Т0Т1 вроде Т3 у меня нету(((

Далее для этого счетчика с генерировать TIMSK.

После чего нужно установить желаемое напряжение с расчетом что 255 - 100% опорного и 00 - 0%. А устанавливать я буду в регистр сравнения TCNT0. Теперь когда таймер дойдет до этого числа с генерируется флаг прерывания в регистре TIFR.

Так?



Как будет вести себя ОС0(ОС2) можно найтроить при помощи регистра TCCR0 вроде как.











Как бы мне систематизировать теперь это все?)))

Я попробовал взглянуть на готовую программу написанную хз кем:


#include <avr/io.h>
#include <util/delay.h>
void InitPWM()
{
/*
TCCR0 - Timer Counter Control Register (TIMER0)
-----------------------------------------------
BITS DESCRIPTION

NO: NAME DESCRIPTION
--------------------------
BIT 7 : FOC0 Force Output Compare [Not used in this example]
BIT 6 : WGM00 Wave form generartion mode [SET to 1]
BIT 5 : COM01 Compare Output Mode [SET to 1]
BIT 4 : COM00 Compare Output Mode [SET to 0]
BIT 3 : WGM01 Wave form generartion mode [SET to 1]
BIT 2 : CS02 Clock Select [SET to 0]
BIT 1 : CS01 Clock Select [SET to 0]
BIT 0 : CS00 Clock Select [SET to 1]
The above settings are for
--------------------------
Timer Clock = CPU Clock (No Prescalling)
Mode = Fast PWM
PWM Output = Non Inverted
*/

TCCR0|=(1<<WGM00)|(1<<WGM01)|(1<<COM01)|(1<<CS00);
//Set OC0 PIN as output. It is PB3 on ATmega16 ATmega32
DDRB|=(1<<PB3);
}
/******************************************************************
Sets the duty cycle of output.
Arguments
---------
duty: Between 0 - 255
0= 0%
255= 100%
The Function sets the duty cycle of pwm output generated on OC0 PIN
The average voltage on this output pin will be
duty
Vout= ------ x 5v
255
This can be used to control the brightness of LED or Speed of Motor.
*********************************************************************/
void SetPWMOutput(uint8_t duty)
{
OCR0=duty;
}
/********************************************************************
Simple Wait Loop
*********************************************************************/
void Wait()
{
_delay_loop_2(3200);
}
void main()
{
uint8_t brightness=0;
//Initialize PWM Channel 0
InitPWM();
//Do this forever
while(1)
{
//Now Loop with increasing brightness
for(brightness=0;brightness<255;brightness++)
{
//Now Set The Brighness using PWM
SetPWMOutput(brightness);
//Now Wait For Some Time
Wait();
}
//Now Loop with decreasing brightness
for(brightness=255;brightness>0;brightness--)
{
//Now Set The Brighness using PWM
SetPWMOutput(brightness);

//Now Wait For Some Time
Wait();
}
}
}



но нефига не понял. Автор не использовал некоторые перечисленные мною регистры. С чем это связанно?



P.S. мдя)) Учится самому тяжко. Последнее время стал больше ценить то, что рассказывают преподаватели)))
Раздел: AVR

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Pwm (Шим) - Сложности В Работе. все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031