Не Могу Поймать Момент Прерывания Шим

2-11-2012, 15:07 От: admin Посмотрели: 966
Добрый день!

Столкнулся с такой проблемой: решил организовать ШИМ на произвольную ногу (atmega16) по следующей схеме - настраиваем быстрый ШИМ на timer2, настраиваем таймер по перепонению timer1. В прерывании таймера по переполнению отслеживаем, когда счётный регистр TCCNT2 равен регистру сравнения OCR2 и меняем уровень напряжения на произвольной ноге.






#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int main(void)
{

DDRA|=(1<<1); //вывод ШИМа произвольной ноги

volatile int ii=0;
volatile stop=0;
int8_t a;

a|=(1<<0);
a&=~(1<<1);

DDRA|=(1<<1)|(1<<2);
DDRD|=(1<<7)|(1<<6);

MCUCR|=(1<<ISC11);
GICR|=(1<<INT0);
TCCR1B|=(1<<CS10); //таймер по переполнению без предделителя
TIMSK=(1<<TOIE1);
TCCR2|=(1<<WGM21)|(1<<WGM20)|(1<<COM21)|(0<<CS22)|(0<<CS21)|(1<<CS20);
TCNT0 = 0;
OCR2=255; //настройка FastPWM

sei();

while(1) //бесконечный цикл
{

for(int i=0;i<255;i++)
{
//устанавливаем яркость ШИМ
OCR2=i;

//Now Wait For Some Time
_delay_ms(10);
PORTA&=~(1<<1); //устанавливаем низкий уровень напр

}
// уменьшаем яркость
for(i=255;i>0;i--)
{
//Now Set The Brighness using PWM
OCR2=i;
//Now Wait For Some Time
_delay_ms(10);
PORTA&=~(1<<1);
}

}

}
ISR (TIMER1_OVF_vect)
{
if (TCNT2==OCR2)
{
PORTA|=(1<<1); //устанавливаем высокий ур-нь напряжения
}

}



Однако не могу обиться работоспособности такого способа.

Возможно регистр TCCNT2 был выбран неверно, надеюсь на ваши подсказки и помощь.
Раздел: AVR

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

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


На момент добавления Не Могу Поймать Момент Прерывания Шим все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
Решите уравнения x+2x=789
Ответ:*
Введите два слова, показанных на изображении:



Опрос

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


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

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