Обработчики прерываний К1887ВЕ3Т Keil

Модераторы: ea, Alis, gurzzza, pip, _sva_

ea
Администратор
Сообщения: 57
Зарегистрирован: 10 окт 2014, 09:08

Re: Обработчики прерываний К1887ВЕ3Т Keil

Сообщение ea »

alina_krylova писал(а): 24 фев 2025, 16:06 Добрый день. Как обрабатывать внешние прерывания(вход внешнего прерывания EX7IN, …, EX0IN)? в каком регистре выставляется приоритет ? И какие у них номера векторов прерываний?
В соответствии с разделом 10 руководства пользователя, в таблице 10.15 показаны соответствия полей регистра EXISEL (т.е. сигналов прерываний) входам.
Например, при настройке прерывания EX0IN по выводу P2.8 (или P1H.0) приоритет прерывания настраивается в регистре CC8IC, вектор прерывания 18 (адрес 0х60).
В таблице векторов прерывания (Приложение А) для вектора №18 указан источник прерывания - Регистр сравнения 8 (СAPCOM1).
Разрешение прерывания осуществляется в битовом поле EXI0ES в регистре EXICON
alina_krylova
Сообщения: 6
Зарегистрирован: 07 июн 2024, 11:36
Предприятие: АО АВЭКС

Re: Обработчики прерываний К1887ВЕ3Т Keil

Сообщение alina_krylova »

Хочу передавать данные побайтно используя прерывания. Использую сразу оба регистра: S0TIC=0x0044; S0TBIC=0x0048; (на всякий случай так как не знаю какой при асинхронной передаче). Разрешаю прерывания IEN=1;.
Обработчик прерываний :
volatile int i=0;
void ASC0_Transmit(void) interrupt 0x2a
{
S0TIR=0;
S0TBIR=0;
i=1;
}

main()
{
i=0;
while(1)
{
if(i==0) S0TBUF=0xff;
if(i==1) i=0;
}
}

Инициалbзацию ASC0 не привожу, т.к. если использую не прерывания, а встроенный printf () то все работает. Напишите пжлст что делаю не так, как правильно работать с прерываниями по передаче.
Ответить

Вернуться в «16-разрядные RISC микроконтроллеры»