Листинг 15. Программа обслуживания прерываний от кнопок

#include "key_codes.h"

extern volatile int key_pressed;

extern volatile int pattern;

/*****************************************************************************

Процедура обработки прерываний от кнопок

******************************************************************************/

void pushbutton_ISR(void)

{

volatile int * KEY_ptr = (int *) 0x10000050; //базовый адрес кнопок

volatile int * slider_switch_ptr = (int *) 0x10000040; //базовый адрес переключателей

int press;

press = *(KEY_ptr + 3); // Читаем содержимое регистра edge-capture

*(KEY_ptr + 3) = 0; // Сбрасываем регистр edge-capture

if (press & 0x2) //если была нажата кнопка KEY1

key_pressed = KEY1;

else if (press & 0x4) //если была нажата кнопка KEY2

key_pressed = KEY2;

else //если была нажата кнопка KEY3

pattern = *(slider_switch_ptr); //определяем какие переключатели

//установлены в верхнее положение

return;

}


Мультимедийные компоненты процессорной системы

Этот раздел описывает аудиопорт, видеопорт, аудио/видео конфигурационный модуль, LCD дисплей 16*2, и PS/2 порт.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: