Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос про прерывание и возврата переменной на С
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
BlauTood
есть вот таккая фигня
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
char tempp;
PORTB=0;
tempp=0;
#asm ("sei");
....
pause:

while (tempp==1); Как сделать, чтобы после возврата из прерывания temp был равен 0, а не 1. А то после прерывания temp равен 1 sad.gif
prescan();
andk
Ни че не понял smile.gif
Вам нужно установить флажок чтоб знать, что прерывание было?

Ну так переменная temp должна быть не локальной
char temp;

interrupt [EXT_INT0] void ext_int0_isr(void)
{
PORTB=0;
temp=0;
}

main()
{
for(;;){
while(temp);
// bla bla bla

temp=1;
}
}

и все....

Так или нет?
BlauTood
Спасибо. Я дурак переменную unsigned char temp; засунул после прерывания, а нужно было до всего вообще.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.