Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Широтно импульсный модулятор

Сб июн 09, 2012 01:41:01

Хотел изучить ШИМ по простому примеру, но облазил весь инет и не могу найти ничего проще моей "в уме сложенной задачи"
Задача: Просто плавно включать и выключать светодиод туда и обратно без всяких кнопок (в моей задаче именно ассемблер, в Си уже мозг "не хочет учиться", начинал с нашей обучалки на Ассемблере)
Дело в том, что нашел даже на нашем сайте код под управление RGB -светодиодом (там тремя ногами оперируют), в одной книге как-то не особо объеснятся для чего вообще управляем ШИМ и становиться вообще страшно, и непонятно.
P.S. сильно не пинать это не ЛЕНЬ, это много мусора в ГОЛОВЕ, хотелось-бы попроще на Русском как в обучалке НАШЕЙ!!! :shock:

Re: Широтно импульсный модулятор

Сб июн 09, 2012 05:41:21

Какой проц??? хотите использовать.
Сколько диодов, какая мощность.
Блин когда правильно начнёте вопросы задавать?

Re: Широтно импульсный модулятор

Сб июн 09, 2012 05:52:47

Извените!!!; ATmega8515, в вопросе сказано было про один (для простоты расмотрения-реализации), мощность не знаю (не мерял) но у меня стветодидная линейка на нем моргала и ничего не перегорело (вот стой линейки и хочу взять светодиод)
Как-то так.
P.S. В процессе нашел сайт "http://proavr.narod.ru/z8.htm" где доступно объесняется как пользоваться аппаратным ШИМ (т.е. как я понял на определённой ножке м.к. "в моём случае на ATmega8515 только на трех ножках 1(OC0), 15(OC1A) и 29(OC1B)".
И меня тут осенило а захочется всё таки на всех восьми ножках одного порта допустим порта_А, т.е. ещё лучше было-бы если бы этот пример был на програмном уровне (но для одной ножки, потом сам бы разбирался как для всех сделать) :tea:

Re: Широтно импульсный модулятор

Сб июн 09, 2012 10:38:02

ZERO.. писал(а):а захочется всё таки на всех восьми ножках одного порта допустим порта_А, т.е. ещё лучше было-бы если бы этот пример был на програмном уровне
думаю подойдет http://bsvi.ru/bam-alternativa-shimu/

Re: Широтно импульсный модулятор

Сб июн 09, 2012 18:41:47

Спасибо!!! ChipKiller
А как передать на одну ножку порта сигнал 0b00101110?
Передать на целый порт сигнал 0b00101110, то будут гореть только, те ножки где стоит1, а где0 - там выключено...
Но что-бы ны одну ножку порта???

Re: Широтно импульсный модулятор

Сб июн 09, 2012 21:50:15

ZERO.. писал(а):А как передать на одну ножку порта сигнал 0b00101110?
ну например так (начиная со старшего бита вывод на PORTB.0 )
Код:
.def   data_pwm   = r16
.def   cnt = r17
...........
ldi cnt,8 ; загружаем счетчик
pwm_loop:
sbrc data_pwm,7
sbi PORTB,0
sbrs data_pwm,7
сbi PORTB,0
lsl data_pwm
; делаем задержку до следующей проверки
......
rcall delay
dec cnt
brne pwm_loop
........

ZERO.. писал(а):Передать на целый порт сигнал 0b00101110, то будут гореть только, те ножки где стоит1, а где0 - там выключено...
Но что-бы ны одну ножку порта???
... похоже Вы не поняли принцип - почитайте внимательней ...

Re: Широтно импульсный модулятор

Вс июн 10, 2012 04:36:08

ChipKiller - СПАСИБО ВАМ ОГРОМНОЕ!!!
Буду изучать, и пробовать, как получиться отпишусь...
Тема закрыта