atmega16. снова шим..

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 22
Зарегистрирован: Пт апр 22, 2011 20:09:44

Сообщение hatabi4 »

Доброй ночи форумчанам.
Нужна помощь знатоков для создания следующего устройства. На таймере Т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);
}
пишу под winavr и с ассемблером не особо лажу. Прошу помощи сказать где я накосячил и помочь.
з.ы. С ШИМ-ом на AVR никогда не работал. Все проверяю в Proteus.
"А теперь надо обязательно дунуть! Потому что если не дунуть, никакого чуда не произойдет!" © Амаяк Акопян
Реклама
Ответить

Вернуться в «AVR»