我设置了两个中断、CPU_Timer1中断100us、ADCA 中断50us。我没有配置中断优先级。我发现 CPU_Timer1中断 的优先级高于 ADCA 中断。但是、我希望 ADCA 中断的中断比 CPU_Timer1中断更高。我应该为实现中断目标添加什么代码。
ADCA 中断 ISR 函数:
_interrupt void adcA1ISR (void)
{
ADC_clearInterruptStatus (ADCA_BASE、ADC_INT_NUMBER1);
if (TRUE =ADC_getInterruptOverflowStatus (ADCA_BASE、ADC_INT_NUMBER1))
{
ADC_clearInterruptOverflowStatus (ADCA_BASE、ADC_INT_NUMBER1);
ADC_clearInterruptStatus (ADCA_BASE、ADC_INT_NUMBER1);
}
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group1);
}
CPU_Timer1输入:
_interrupt void cpuTimer1ISR (void)
{
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group1);
}
我尝试根据演示代码"interrupt_ex2_sw_Prioritization "修改代码、调制代码如下:
ADCA 中断 ISR 函数:
_interrupt void adcA1ISR (void)
{
volatile uint16_t tempPIEIER = HWREGH (PIECTRL_BASE + PIE_O_IER1);
IER |= M_INT1;
IER &= MINT1;
HWREGH (PIECTRL_BASE + PIE_O_IER1)&= MG1_7;
INTERRUPT_clearACKGROUP (0xFFFFFFU);
_asm (" NOP");
EINT;
ADC_clearInterruptStatus (ADCA_BASE、ADC_INT_NUMBER1);
if (TRUE =ADC_getInterruptOverflowStatus (ADCA_BASE、ADC_INT_NUMBER1))
{
ADC_clearInterruptOverflowStatus (ADCA_BASE、ADC_INT_NUMBER1);
ADC_clearInterruptStatus (ADCA_BASE、ADC_INT_NUMBER1);
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group1);
Dint;
HWREGH (PIECTRL_BASE + PIE_O_IER1)= tempPIEIER;
}
CPU_Timer1输入:
_interrupt void cpuTimer1ISR (void)
{
IER &= MINT13;
EINT;
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_Group1);
Dint;
}
我犯了什么错误?如果您能帮助我修改代码、我将不胜感激?





