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

 
 
> Внешние прерывания на с68013, проблема: c68013 виснет от внешних прерываний...
Nzdrw
сообщение Apr 24 2007, 13:50
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 18-04-07
Пользователь №: 27 138



Привет,помогите пожалуйста:
Есть задача принимать синхро-импульсы с видиокамеры... они заведены на ноги PA0, PA1;
вроде бы есть примеры с прерываниями от USB...
сделал так же как и в примерах:

void ISR_INT1(void) interrupt INT0_VECT //interrupt from PA.0
{
EP2FIFOBUF[0] = 0xff; //set start frame flag
EP2FIFOBUF[1] = 0x00;
EP2FIFOBUF[2] = 0xff;
EP2FIFOBUF[3] = 0x00;

EZUSB_IRQ_CLEAR();
EZUSB_WriteI2C(0x21, 0x01, 0xa4); //indicate interrupt
}

в общеизвестной функции TD_Init разрешаю глоб. прерывания и внешние прерывания
PORTACFG = 0x03;
EX0 = 1;
EX1 = 1;
EA = 1;

В симуляторе проверял....работает.
В контроллере - фиг. комп теряет устройство вообще... В чем проблема??? blink.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
torik
сообщение Apr 25 2007, 10:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



прерывания должны быть по фронту, т.е. как-то так
EA = 1; // Enable 8051 interrupts
EX0 = 1;
IT0 = 1;

В противном случае прерывание происходит по уровню, а значит он выйдет из них и снова зайдет. Результат - "зависание"

У меня так было в начале.
Подробнее об IT0 чытаем в мануале...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post

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

 


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


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