X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=natanael%2Fex09%2Fex09a1.c;h=cb7257d2da82fa121f8c743222952effba503f98;hb=3e5a839d3f540c49d5b903bfebdd8913e7deef9a;hp=86c80e6d342e168e379684ad919ba64da10a8203;hpb=07e75e81aa605500c3be848277d397718f14b868;p=des2015.git diff --git a/natanael/ex09/ex09a1.c b/natanael/ex09/ex09a1.c index 86c80e6..cb7257d 100644 --- a/natanael/ex09/ex09a1.c +++ b/natanael/ex09/ex09a1.c @@ -8,9 +8,7 @@ RT_INTR keypress; RT_TASK key_isr; -#define PARPORT_IRQ 7 - -unsigned char byte; +#define KEYBOARD_IRQ 1 void key_handler(void *arg) { @@ -28,12 +26,10 @@ void key_handler(void *arg) //startup code void startup() { - rt_intr_create(&keypress, NULL, PARPORT_IRQ, I_PROPAGATE); - enable_interupt(); + rt_intr_create(&keypress, NULL, KEYBOARD_IRQ, I_PROPAGATE); rt_task_create(&key_isr, NULL,0,50,0); rt_task_start(&key_isr, &key_handler, NULL); - } void init_xenomai() { @@ -44,21 +40,6 @@ void init_xenomai() { rt_print_auto_init(1); } -void enable_interupt() -{ - ioperm(0x37A, 1, 1); - byte = inb(0x37A); - byte = byte | 0x10; /* hex 10 = 00010000 */ - outb(byte, 0x37A); -} - -void disable_interupt() -{ - byte = inb(0x37A); - byte = byte & 0xEF; /* hex EF = binary 11101111 */ - outb(byte, 0x37A); -} - int main(int argc, char* argv[]) { printf("\nType CTRL-C to end this program\n\n" ); @@ -71,6 +52,4 @@ int main(int argc, char* argv[]) // wait for CTRL-c is typed to end the program pause(); - - disable_interupt(); -} +} \ No newline at end of file