ВУЗ:
Составители:
единицу статическую переменную и выводит её значение на экран.
// обработчик прерывания
void interrupt E_Interrupt(PARM)
{
static unsigned int cnt;
// выведем значение статической переменной
cprintf("\n\r Счетчик = %5u", cnt++);
// сбросим флаг прерывания на плате АЦП и в компьютере
RESET_IRQ();
}
// основная функция
main()
{
// установим интервал между прерываниями 10000 мкс и
// адрес обработчика E_Interrupt
INIT_SIMPLE_INTR( 10000, E_Interrupt);
// ждем пока не нажата клавиша
while(!kbhit());
// запретим прерывания от платы и восстановим
// контроллер прерываний
STOP_INTR();
}
5.6.2. Прерывания с одноканальным вводом с АЦП
void STREAM_INTR (int Rate, interrupt *Vector, int Channel);
Назначение. Программирует контроллер прерываний и плату для работы в режиме
ввода с заданным интервалом и последующим генерированием прерывания. Драйвер
-
обработчик должен позаботиться о сбросе как контроллера прерываний компьютера, так
и контроллера прерываний платы АЦП. Для чтения введенного отсчета с АЦП можно
использовать функцию
READ_DATA().
Параметры:
1. Rate — интервал генерирования прерываний;
2. Vector — адрес обработчика прерываний;
3. Channel — номер канала АЦП.
Пример:
// Драйвер - обработчик прерывания от платы
// при каждом вызове вводит отсчет с АЦП и выводит его на экран.
// глобальная переменная
int GlobalVar=0;
// обработчик прерывания
void interrupt E_Interrupt(PARM)
{
int i;
if(!GlobalVar)
{
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »