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

 
 
> Вопрос про прерывание и возврата переменной на С
BlauTood
сообщение Mar 18 2005, 15:05
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 11-10-04
Пользователь №: 841



есть вот таккая фигня
// 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();


--------------------
Сделать можно ВСЕ, но это нужно делать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
andk
сообщение Mar 18 2005, 15:23
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 17-12-04
Из: Миасс
Пользователь №: 1 519



Ни че не понял 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;
}
}

и все....

Так или нет?
Go to the top of the page
 
+Quote Post
BlauTood
сообщение Mar 18 2005, 15:33
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 11-10-04
Пользователь №: 841



Спасибо. Я дурак переменную unsigned char temp; засунул после прерывания, а нужно было до всего вообще.


--------------------
Сделать можно ВСЕ, но это нужно делать.
Go to the top of the page
 
+Quote Post

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

 


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


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