#include "signal.h" [hier kommt was] typedef enum { ISR_SNA = 0, /**< Signal not available */ ISR_SIGNAL0, /**< External Interrupt Request 0 */ ISR_PIN_CHANGE0, /**< Pin Change Interrupt Request 0 */ ISR_PIN_CHANGE1, /**< Pin Change Interrupt Request 1 */ [weitere enums] }IsrType_en; [sonstiges] void invalidISR(IsrType_en CallingIrq_en) { static volatile IsrType_en LastIrq_en = ISR_SNA; LastIrq_en = CallingIrq_en; /* 'Save' the name of the calling irq */ for(;;) { /* If this ISR is called, something else went */ /* wrong, so at this point we won't do anything */ /* but wait for external reset */ } } SIGNAL(SIG_SIGNAL0) { invalidISR(ISR_SIGNAL0); } SIGNAL(SIG_PIN_CHANGE0) { invalidISR(ISR_PIN_CHANGE0); } SIGNAL(SIG_PIN_CHANGE1) { invalidISR(ISR_PIN_CHANGE1); } [weitere IRQ-Handler]