Доброй ночи форумчанам.
Нужна помощь знатоков для создания следующего устройства. На таймере Т1 в ШИМ режиме необходимо после ФНЧ получить пилу, спадающую сразу при достижении уровня 5В(режим сброса таймера при совпадении (СТС)) , длительностью 100мс. Перечитав документацию по МК у меня вышло такое:
пишу под winavr и с ассемблером не особо лажу. Прошу помощи сказать где я накосячил и помочь.
з.ы. С ШИМ-ом на AVR никогда не работал. Все проверяю в Proteus.
Нужна помощь знатоков для создания следующего устройства. На таймере Т1 в ШИМ режиме необходимо после ФНЧ получить пилу, спадающую сразу при достижении уровня 5В(режим сброса таймера при совпадении (СТС)) , длительностью 100мс. Перечитав документацию по МК у меня вышло такое:
Код: Выделить всё
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
// все ножки порта B на выход
DDRD=0xFF;
// Значение в регистры сравнения:
OCR1A=0x000f;
OCR1B=0x0000;
//OC1A устанавливается в 1 при совпадении COM1A1=1,COM1A0=1;
//OC1B сбрасывается в 0 при совпадении COM1B1=1,COM1B0=1
TCCR1A |=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(1<<WGM10);
TCCR1B |=(1<<CS10)|(1<<WGM12);
while(1);
}
з.ы. С ШИМ-ом на AVR никогда не работал. Все проверяю в Proteus.
"А теперь надо обязательно дунуть! Потому что если не дунуть, никакого чуда не произойдет!" © Амаяк Акопян