X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=betty%2Finterrupts.h;h=cfb7591aa425bdeb7ad400f1573fcaca20be54b5;hb=b75b1bf631a3bb68f50f65c65736b1bf743f51b7;hp=4ddee8fd697160357e9c64a379c60d5ac586b145;hpb=26e5d8a9fcb9ff98019259619d7256a50220b8e9;p=my-code%2Farm.git diff --git a/betty/interrupts.h b/betty/interrupts.h index 4ddee8f..cfb7591 100644 --- a/betty/interrupts.h +++ b/betty/interrupts.h @@ -34,18 +34,27 @@ #define INTERRUPT_EINT3 17 #define INTERRUPT_ADC 18 -#define INTERRUPT_IRQ 0 -#define INTERRUPT_VIRQ 1 -#define INTERRUPT_FIQ 2 +#define INTERRUPT_MODE_IRQ 0 +#define INTERRUPT_MODE_VIRQ 1 +#define INTERRUPT_MODE_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_EXT_NOWAKE 0 +#define INTERRUPT_EXT_WAKEUP 1 + +#define INTERRUPT_EXT0 0 +#define INTERRUPT_EXT1 1 +#define INTERRUPT_EXT2 2 +#define INTERRUPT_EXT3 3 #define INTERRUPT_SET 0x00 #define INTERRUPT_USED 0x01 #define INTERRUPT_PRIORITY_USED 0x02 +#define INTERRUPT_CALLBACK_CHANGED 0x03 +#define INTERRUPT_SRC_NOT_USED 0x04 /* type definitions */ @@ -55,10 +64,17 @@ typedef struct s_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_init(void); +void interrupt_set_default_callback(u32 callback_addr); +void interrupt_set_soft_callback(void (*callback)(void)); +void interrupt_soft_clear(u8 src_number); +void interrupt_clear(u8 src_number); +void interrupt_soft_enable(u8 src_number); +int interrupt_enable(u8 src_number,u8 mode,u8 priority,u32 callback_addr); +int interrupt_change_callback(u8 src_number,u32 callback_addr); +void interrupt_ext_ir_config(u8 eint,u8 wakeup,u8 mode,u8 polarity); +void interrupt_ext_ir_set(u8 eint); +void interrupt_ack(void); void interrupt_handler_reset(void); void interrupt_handler_undef_instruction(void);