реклама на сайте
подробности

 
 
> Конфигурирование timer1 (Atmega16) в режим PWM
man1
сообщение Feb 2 2011, 15:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 11-01-08
Пользователь №: 34 008



Добрый день,
Подскажите плз в чем может быть проблема , хочу сделать два канала ШИМ 8 bit на выходы OC1A,OC1B , использую timer1 конфигурирую его для работы в режиме Fast Mode 8 bit

#define setbit(x,y) (x|=(1<<y))
#define clearbit(x,y) (x&=~(1<<y))
#define checkbit(x,y) (x&(1<<y))

TCCR1B = 2; //clk/8
setbit(DDRD,PD5);
setbit(DDRD,PD4);

setbit(TCCR1A,WGM10);
clearbit(TCCR1A,WGM11);
setbit(TCCR1B,WGM12);
clearbit(TCCR1B,WGM13); установка режима fast mode

setbit(TCCR1A,COM1A0);
setbit(TCCR1A,COM1A1);
setbit(TCCR1A,COM1B0);
setbit(TCCR1A,COM1B1); управление выводом

OCR1AH=255/256;
OCR1AL=255%256;
//setbit(TIMSK,OCIE1A); //INT CompareA enable

OCR1BH=255/256;
OCR1BL=255%256;
//setbit(TIMSK,OCIE1B); //INT CompareA enable

По отдельности выводы OC1A и OC1B работают , а вместе не хотят .
В чем может быть причина?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
2891oleg
сообщение Feb 2 2011, 16:21
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 1-02-11
Из: Запорожье
Пользователь №: 62 620



Вот тебе работающий пример из СVAVR.
Кстати, ты не забыл OC1A OC1B (PD4, PD5) сделать выходами?

DDRD=0x30;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz clk/8
// Mode: Fast PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x0A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x80; //pwm1 0...FF
OCR1BH=0x00;
OCR1BL=0x80; // pwm2 0...FF

Цитата(2891oleg @ Feb 2 2011, 18:10) *
Вот тебе работающий пример из СVAVR.
Кстати, ты не забыл OC1A OC1B (PD4, PD5) сделать выходами?

DDRD=0x30;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz clk/8
// Mode: Fast PWM top=00FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x0A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x80; //pwm1 0...FF
OCR1BH=0x00;
OCR1BL=0x80; // pwm2 0...FF


Пардон, вижу, что не забыл:
setbit(DDRD,PD5);
setbit(DDRD,PD4);
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016