X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Farm.git;a=blobdiff_plain;f=betty%2Finterrupts.h;h=ab93f8f1ab1c5a0e508bf6b43d4bb71dd4197842;hp=9c1b8aa7be45dae348f0e8542cfd9aad4e5653ed;hb=d01b3bb1e7565638e2275e6081dcb106c1fcdb41;hpb=6543545b048b7059941b0f6680227ec4ce26535e diff --git a/betty/interrupts.h b/betty/interrupts.h index 9c1b8aa..ab93f8f 100644 --- a/betty/interrupts.h +++ b/betty/interrupts.h @@ -5,16 +5,68 @@ * */ +#ifndef INTERRUPTS_H +#define INTERRUPTS_H + #include "lpc2xxx.h" #include "types.h" +/* defines */ + +#define INTERRUPT_MAX_VIC 16 + +#define INTERRUPT_WATCHDOG 0 +#define INTERRUPT_DBG_COMM_RX 2 +#define INTERRUPT_DBG_COMM_TX 3 +#define INTERRUPT_TIMER0 4 +#define INTERRUPT_TIMER1 5 +#define INTERRUPT_UART0 6 +#define INTERRUPT_UART1 7 +#define INTERRUPT_PWM 8 +#define INTERRUPT_I2C 9 +#define INTERRUPT_SPI0 10 +#define INTERRUPT_SPI1 11 +#define INTERRUPT_PLL 12 +#define INTERRUPT_RTC 13 +#define INTERRUPT_EINT0 14 +#define INTERRUPT_EINT1 15 +#define INTERRUPT_EINT2 16 +#define INTERRUPT_EINT3 17 +#define INTERRUPT_ADC 18 + +#define INTERRUPT_IRQ 0 +#define INTERRUPT_VIRQ 1 +#define INTERRUPT_FIQ 2 + +#define INTERRUPT_EXT_MODE_EDGE 0 +#define INTERRUPT_EXT_MODE_LEVEL 1 +#define INTERRUPT_EXT_POLAR_LOW 0 +#define INTERRUPT_EXT_POLAR_HIGH 1 + +#define INTERRUPT_SET 0x00 +#define INTERRUPT_EINUSE 0x01 + +/* type definitions */ + +typedef struct s_interrupt { + void *default_callback; + u8 default_mode; + void *callback[INTERRUPT_MAX_VIC]; + u8 mode[INTERRUPT_MAX_VIC]; +} t_interrupt; + /* function prototypes */ +void interrupt_set_default_callback(t_interrupt *ir,void *callback); + +void interrupt_ext_ir_conf(u8 pin,u8 mode,u8 polar, + void (*ext_ir_callback)(t_interrupt *ir)); + void interrupt_handler_reset(void); void interrupt_handler_undef_instruction(void); void interrupt_handler_soft_ir(void); void interrupt_handler_prefetch_abort(void); void interrupt_handler_data_abort(void); -void interrupt_handler_irq(void); void interrupt_handler_fiq(void); +#endif