[an error occurred while processing this directive]
Не случаются прерывания таймера 2 от перепада на входе T2EX (P1.1) проца ADUC842 (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Dimonira 26 мая 2006 г. 00:09

В первой версии платы заводил сигнал на прерывание INT0, всё работало, софт был отлажен.
Но пришлось сделать переделку платы, понадобилось ещё прерывание, поэтому завёл прежний сигнал на вход T2EX (P1.1), по которому можно организовать прерывание таймера 2.
Софт в связи с этим претерпел простые переделки.
Обработчик прерывания изменился только добавлением сброса флага прерывания:

void int_t2ex() interrupt 5 using 2
{
EXF2 = 0;
// ... то что было раньше ...
}

Инициализация в начале программы изменил так:

// IT0 = 1; // было
// EX0 = 1; // было
EXEN2 = 1; // разрешаю вход T2EX
ET2 = 1; // разрешаю прерывания таймера 2
EA = 1; // было, разрешаю прерывания

В симуляторе если дёрнуть пин порта P1.1, то прерывание возникает и всё симулируется как надо. Однако физический "прогон" показывает, что прерываний при наличии меандра частотой 4800 Гц на входе T2EX нету!
Если программно установить флаг прерывания EXF2, то всё, конечно, прерывается (однократно) и работает как в симуляторе, так и реально.
Чего не хватает? Или контроллер дохлый?
Софт пишу в Keil 8.02.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru