Прерывания+Шим Проблема

27-09-2013, 17:48 От: admin Посмотрели: 611
Столкнулся с проблемой. Сразу говорю в гугле не забанили. Читал, но так и не понял.



Разбираюсь с прерываниями. Суть программы в следующем:



С помощью прерывания реализован шим, далее после того как светодиод полностью зажгеться, нужно запретить это прерывание(подождать не много времени), и вызвать другое, в котором будет реализация мигания этого же светодиода.



схема к 14 ноге аттини 2313 подключен светодиод.



Не могу понять как запретить одно прерывание и вызвать другое. в даташипе есть регистры TIFR с определенными флагами с помощью которых можно отследить выполнилось ли прерывание или нет.



код программы



#include <avr/io.h>

#include <math.h>

#include <util/delay.h>

#include <avr/interrupt.h>



ISR(TIMER0_COMPA_vect)

{

OCR0A++;

_delay_ms(5);

}



void f(void)

{

while (TCNT0<700)

{

TCNT0++;

}



}







int main(void)

{

PORTB=0x00;

DDRB=0xC5;

TCCR0A =(1<<WGM02)|(1<<WGM01)|(1<<WGM00)|(1<<COM0A1)|(1<<COM0A0);

TCCR0B =(1<<CS00);

TCNT0 = 0x00;

OCR0A = 0x01;

TIMSK=(TOIE0);

sei();

while(1)

{

if (1<<TOV0)

{

f();

cli();

f();

}

}

}
Раздел: AVR

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

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


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


Опрос

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


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

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