#define IVEC *((unsigned char *)0x3B) #define CRG_INIT *((unsigned char *)0x38) #define CRG_FLAG *((unsigned char *)0x37) #define IVEC_ADDR 0x3ff0 typedef void (*void_void_fp)(void); void init_crg(void (*fp)(void)) { // sätt avbrottsperiod IVEC = 0x10; // Aktivera CRG CRG_INIT = 0x80; // Initiera avbrottsvektorn *((void_void_fp *)IVEC_ADDR) = fp; } void kvittera_crg(void) { CRG_FLAG |= 0x80; }