📄 mx21_aitc.c
字号:
case 56:
AITC_INTFRCH.bits.INT56 = _intbit;
break;
case 55:
AITC_INTFRCH.bits.INT55 = _intbit;
break;
case 54:
AITC_INTFRCH.bits.INT54 = _intbit;
break;
case 53:
AITC_INTFRCH.bits.INT53 = _intbit;
break;
case 52:
AITC_INTFRCH.bits.INT52 = _intbit;
break;
case 51:
AITC_INTFRCH.bits.INT51 = _intbit;
break;
case 50:
AITC_INTFRCH.bits.INT50 = _intbit;
break;
case 49:
AITC_INTFRCH.bits.INT49 = _intbit;
break;
case 48:
AITC_INTFRCH.bits.INT48 = _intbit;
break;
case 47:
AITC_INTFRCH.bits.INT47 = _intbit;
break;
case 46:
AITC_INTFRCH.bits.INT46 = _intbit;
break;
case 45:
AITC_INTFRCH.bits.INT45 = _intbit;
break;
case 44:
AITC_INTFRCH.bits.INT44 = _intbit;
break;
case 43:
AITC_INTFRCH.bits.INT43 = _intbit;
break;
case 42:
AITC_INTFRCH.bits.INT42 = _intbit;
break;
case 41:
AITC_INTFRCH.bits.INT41 = _intbit;
break;
case 40:
AITC_INTFRCH.bits.INT40 = _intbit;
break;
case 39:
AITC_INTFRCH.bits.INT39 = _intbit;
break;
case 38:
AITC_INTFRCH.bits.INT38 = _intbit;
break;
case 37:
AITC_INTFRCH.bits.INT37 = _intbit;
break;
case 36:
AITC_INTFRCH.bits.INT36 = _intbit;
break;
case 35:
AITC_INTFRCH.bits.INT35 = _intbit;
break;
case 34:
AITC_INTFRCH.bits.INT34 = _intbit;
break;
case 33:
AITC_INTFRCH.bits.INT33 = _intbit;
break;
case 32:
AITC_INTFRCH.bits.INT32 = _intbit;
break;
case 31:
AITC_INTFRCL.bits.INT31 = _intbit;
break;
case 30:
AITC_INTFRCL.bits.INT30 = _intbit;
break;
case 29:
AITC_INTFRCL.bits.INT29 = _intbit;
break;
case 28:
AITC_INTFRCL.bits.INT28 = _intbit;
break;
case 27:
AITC_INTFRCL.bits.INT27 = _intbit;
break;
case 26:
AITC_INTFRCL.bits.INT26 = _intbit;
break;
case 25:
AITC_INTFRCL.bits.INT25 = _intbit;
break;
case 24:
AITC_INTFRCL.bits.INT24 = _intbit;
break;
case 23:
AITC_INTFRCL.bits.INT23 = _intbit;
break;
case 22:
AITC_INTFRCL.bits.INT22 = _intbit;
break;
case 21:
AITC_INTFRCL.bits.INT21 = _intbit;
break;
case 20:
AITC_INTFRCL.bits.INT20 = _intbit;
break;
case 19:
AITC_INTFRCL.bits.INT19 = _intbit;
break;
case 18:
AITC_INTFRCL.bits.INT18 = _intbit;
break;
case 17:
AITC_INTFRCL.bits.INT17 = _intbit;
break;
case 16:
AITC_INTFRCL.bits.INT16 = _intbit;
break;
case 15:
AITC_INTFRCL.bits.INT15 = _intbit;
break;
case 14:
AITC_INTFRCL.bits.INT14 = _intbit;
break;
case 13:
AITC_INTFRCL.bits.INT13 = _intbit;
break;
case 12:
AITC_INTFRCL.bits.INT12 = _intbit;
break;
case 11:
AITC_INTFRCL.bits.INT11 = _intbit;
break;
case 10:
AITC_INTFRCL.bits.INT10 = _intbit;
break;
case 9:
AITC_INTFRCL.bits.INT9 = _intbit;
break;
case 8:
AITC_INTFRCL.bits.INT8 = _intbit;
break;
case 7:
AITC_INTFRCL.bits.INT7 = _intbit;
break;
case 6:
AITC_INTFRCL.bits.INT6 = _intbit;
break;
case 5:
AITC_INTFRCL.bits.INT5 = _intbit;
break;
case 4:
AITC_INTFRCL.bits.INT4 = _intbit;
break;
case 3:
AITC_INTFRCL.bits.INT3 = _intbit;
break;
case 2:
AITC_INTFRCL.bits.INT2 = _intbit;
break;
case 1:
AITC_INTFRCL.bits.INT1 = _intbit;
break;
case 0:
default:
AITC_INTFRCL.bits.INT0 = _intbit;
break;
}
return;
}
//---------------------------------------------------
// This function is used for clearing the forced interrupt
// by writing to the AITC_INTFRCL or the AITC_INTFRCH
// register.
//---------------------------------------------------
void
AITC_ClearOneInt(uint32_t intNum) // interrupt number
{
uint32_t _intbit;
_intbit = 0;
switch(intNum)
{
case 63:
AITC_INTFRCH.bits.INT63 = _intbit;
break;
case 62:
AITC_INTFRCH.bits.INT62 = _intbit;
break;
case 61:
AITC_INTFRCH.bits.INT61 = _intbit;
break;
case 60:
AITC_INTFRCH.bits.INT60 = _intbit;
break;
case 59:
AITC_INTFRCH.bits.INT59 = _intbit;
break;
case 58:
AITC_INTFRCH.bits.INT58 = _intbit;
break;
case 57:
AITC_INTFRCH.bits.INT57 = _intbit;
break;
case 56:
AITC_INTFRCH.bits.INT56 = _intbit;
break;
case 55:
AITC_INTFRCH.bits.INT55 = _intbit;
break;
case 54:
AITC_INTFRCH.bits.INT54 = _intbit;
break;
case 53:
AITC_INTFRCH.bits.INT53 = _intbit;
break;
case 52:
AITC_INTFRCH.bits.INT52 = _intbit;
break;
case 51:
AITC_INTFRCH.bits.INT51 = _intbit;
break;
case 50:
AITC_INTFRCH.bits.INT50 = _intbit;
break;
case 49:
AITC_INTFRCH.bits.INT49 = _intbit;
break;
case 48:
AITC_INTFRCH.bits.INT48 = _intbit;
break;
case 47:
AITC_INTFRCH.bits.INT47 = _intbit;
break;
case 46:
AITC_INTFRCH.bits.INT46 = _intbit;
break;
case 45:
AITC_INTFRCH.bits.INT45 = _intbit;
break;
case 44:
AITC_INTFRCH.bits.INT44 = _intbit;
break;
case 43:
AITC_INTFRCH.bits.INT43 = _intbit;
break;
case 42:
AITC_INTFRCH.bits.INT42 = _intbit;
break;
case 41:
AITC_INTFRCH.bits.INT41 = _intbit;
break;
case 40:
AITC_INTFRCH.bits.INT40 = _intbit;
break;
case 39:
AITC_INTFRCH.bits.INT39 = _intbit;
break;
case 38:
AITC_INTFRCH.bits.INT38 = _intbit;
break;
case 37:
AITC_INTFRCH.bits.INT37 = _intbit;
break;
case 36:
AITC_INTFRCH.bits.INT36 = _intbit;
break;
case 35:
AITC_INTFRCH.bits.INT35 = _intbit;
break;
case 34:
AITC_INTFRCH.bits.INT34 = _intbit;
break;
case 33:
AITC_INTFRCH.bits.INT33 = _intbit;
break;
case 32:
AITC_INTFRCH.bits.INT32 = _intbit;
break;
case 31:
AITC_INTFRCL.bits.INT31 = _intbit;
break;
case 30:
AITC_INTFRCL.bits.INT30 = _intbit;
break;
case 29:
AITC_INTFRCL.bits.INT29 = _intbit;
break;
case 28:
AITC_INTFRCL.bits.INT28 = _intbit;
break;
case 27:
AITC_INTFRCL.bits.INT27 = _intbit;
break;
case 26:
AITC_INTFRCL.bits.INT26 = _intbit;
break;
case 25:
AITC_INTFRCL.bits.INT25 = _intbit;
break;
case 24:
AITC_INTFRCL.bits.INT24 = _intbit;
break;
case 23:
AITC_INTFRCL.bits.INT23 = _intbit;
break;
case 22:
AITC_INTFRCL.bits.INT22 = _intbit;
break;
case 21:
AITC_INTFRCL.bits.INT21 = _intbit;
break;
case 20:
AITC_INTFRCL.bits.INT20 = _intbit;
break;
case 19:
AITC_INTFRCL.bits.INT19 = _intbit;
break;
case 18:
AITC_INTFRCL.bits.INT18 = _intbit;
break;
case 17:
AITC_INTFRCL.bits.INT17 = _intbit;
break;
case 16:
AITC_INTFRCL.bits.INT16 = _intbit;
break;
case 15:
AITC_INTFRCL.bits.INT15 = _intbit;
break;
case 14:
AITC_INTFRCL.bits.INT14 = _intbit;
break;
case 13:
AITC_INTFRCL.bits.INT13 = _intbit;
break;
case 12:
AITC_INTFRCL.bits.INT12 = _intbit;
break;
case 11:
AITC_INTFRCL.bits.INT11 = _intbit;
break;
case 10:
AITC_INTFRCL.bits.INT10 = _intbit;
break;
case 9:
AITC_INTFRCL.bits.INT9 = _intbit;
break;
case 8:
AITC_INTFRCL.bits.INT8 = _intbit;
break;
case 7:
AITC_INTFRCL.bits.INT7 = _intbit;
break;
case 6:
AITC_INTFRCL.bits.INT6 = _intbit;
break;
case 5:
AITC_INTFRCL.bits.INT5 = _intbit;
break;
case 4:
AITC_INTFRCL.bits.INT4 = _intbit;
break;
case 3:
AITC_INTFRCL.bits.INT3 = _intbit;
break;
case 2:
AITC_INTFRCL.bits.INT2 = _intbit;
break;
case 1:
AITC_INTFRCL.bits.INT1 = _intbit;
break;
case 0:
default:
AITC_INTFRCL.bits.INT0 = _intbit;
break;
}
return;
}
//---------------------------------------------------
// This function is used for forcing all the interrupt
// lines simultaneously based on directly writing to
// the AITC_INTFRCL and the AITC_INTFRCH registers.
//---------------------------------------------------
void
AITC_ForceAllInt(void)
{
// set all bits in the AITC_INTFRCH
// and the AITC_INTFRCL registers
AITC_INTFRCL.all = AITC_FORCE_ALL;
AITC_INTFRCH.all = AITC_FORCE_ALL;
}
//---------------------------------------------------------------
// This function provides the basic steps to setup the IRQ interrupt,
// and update the vector address based on the configuration established
// in the INTCNTL register.
//---------------------------------------------------------------
void
AITC_SetupIRQ(uint32_t nSourceNumber,
uint32_t nPriorityLevel)
{
uint32_t _regVal; // temporary variable to
// store INTCNTL value.
uint32_t _mdBit; // temp variable to
// store MD Bit in INTCNTL
uint32_t _nmBit; // temp variable to
// store NM Bit in INTCNTL
// To allow register access
// SetCpuPrivMode(TRUE);
// Clear Normal Interrupt Disable Bit
AITC_INTCNTL.bits.NIDIS = AITC_NIDIS_SET;
// Set Interrupt Type To IRQ (0)
AITC_SetIntType(nSourceNumber, (uint8_t)AITC_IS_IRQ);
// Set Priority Level
AITC_SetIrqPriority(nSourceNumber, nPriorityLevel);
// Enable Interrupt Source
AITC_EnableIntSource(nSourceNumber);
return;
}
//---------------------------------------------------------------
// This function provides the basic steps to setup the FIQ interrupt,
// and update the vector address based on the configuration established
//in the INTCNTL register.
//---------------------------------------------------------------
// Public Utility Functions
void
AITC_SetupFIQ(uint32_t nSourceNumber,
uint32_t nPriorityLevel)
{
uint32_t _regVal; // temp variable to
// store INTCNTL value
uint32_t _mdBit; // temp variable to
// store MD Bit in INTCNTL
uint32_t _fmBit; // temp variable to
// store FM Bit in INTCNTL
// allow register access
// SetCpuPrivMode(TRUE);
// Clear fast Interrupt Diable Bit
AITC_INTCNTL.bits.FIDIS = AITC_FIDIS_SET;
// Set Interrupt Type To FIQ (0)
AITC_SetIntType(nSourceNumber, (uint8_t)AITC_IS_FIQ);
// Set Priority Level
// FIQ priority is not software programmable
// SetFiqPriority(nSourceNumber, nPriorityLevel);
// Enable Interrupt Source
AITC_EnableIntSource(nSourceNumber);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -