typedef interrupt void(*PINT)(void); #define ADCINT1_OFT 64 // ADC - if Group 10 ADCINT1 is enabled, this must be Rsvd1_1 #define PIEIER1_OFT 0 // PIE INT1 IER register #define PIEIER_INTx1 (1 << 0 ) #define M_INT1 0x0001 #define PIEACK_GROUP1 0x0001 static const PieCfg AdcIntCfgTab = { ADCINT1_OFT, PIEIER1_OFT, PIEIER_INTx1, M_INT1, PIEACK_GROUP1 }; /********************************************************************************** ***********************************************************************************/ void HwPieInit(void (*UserInterrupt)(void),PieCfg PieTable) { PINT UserCfgInt =&PieVectTable.PIE1_RESERVED; volatile union PIEIER_REG *const PieIerX=&PieCtrlRegs.PIEIER1; // PIE INT1 IER register EALLOW; *((volatile Uint16 *)(UserCfgInt+PieTable.PieIntOft))=UserInterrupt; *((volatile Uint16 *)(PieIerX+PieTable.PieIerXOft))|=PieTable.PieInx; IER |= PieTable.PieMint; PieCtrlRegs.PIEACK.all =PieTable.PieAck; EDIS; } #pragma CODE_SECTION(Seq1InterruptServiceRoutine, "ramfuncs"); interrupt void Seq1InterruptServiceRoutine(void) { } void main(void) { HwPieInit(&Seq1InterruptServiceRoutine,AdcIntCfgTab); }