Устройства ввода-вывода аналоговых и дискретных сигналов для компьютерных систем. Засов В.А - 29 стр.

UptoLike

Составители: 

// введем отсчет с АЦП
i=READ_DATA();
// отобразим его на экран
cprintf(“\n\r Код с АЦП = %5d", i);
}
// сбросим флаг прерывания на плате АЦП и в компьютере
RESET_IRQ();
}
// основная функция
main()
{
int Channel=0;
GlobalVar=0;
// установим интервал между прерываниями 10000 мкс и
// адрес обработчика E_Interrupt
INIT_SIMPLE_INTR {10000, E_Interrupt, Channel);
// ждем пока не нажата клавиша
while(!kbhit());
// сообщим обработчику, что мы собираемся выключить прерывания
GlobalVar=1;
// запретим прерывания от платы и восстановим контроллер прерываний
STOP_INTR();
}
5.6.3. Прерывания с многоканальным вводом с АЦП
void SOFT_INTR (int Rate, interrupt *Vector, int *Channels, int Nch);
Назначение. Программирует контроллер прерываний и плату для работы в режиме
многоканального ввода с АЦП с заданным интервалом ввода и последующим
генерированием прерывания. Драйвер - обработчик должен позаботиться о сбросе как
контроллера прерываний компьютера, так и контроллера прерываний платы. Обработчик
должен считать заказанный ряд отсчетов с каналов АЦП при помощи функции
READ_DATA().
Параметры:
1. Rateинтервал генерирования прерываний;
2.
Vectorадрес обработчика прерываний;
3.
Channelsцелочисленный массив с номерами каналов АЦП;
4.
Nchчисло вводимых каналов АЦП.
5.6.4. Сброс флага прерываний
void RESET_IRQ(void);
Назначение. Обработчик прерывания должен перед выходом сбросить регистр
прерывания на плате и в компьютере. Для этого достаточно вызвать функцию
RESET_IRQ().
Ïàðàìåòðû: îòñóòñòâóþò
5.6.5. Чтение отсчетов из обработчиков прерывания
int READ_DATA ();