interrupt void ADC_FIR_INT_ISR(void)
{
volatile Uint16 *p;
Uint16 k ;
EvaRegs.EVAIFRA.bit.T1PINT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
。。。。。。。。。。。。。。。。。。。。
程序烧写到FLASH后,进行仿真时,到
EvaRegs.EVAIFRA.bit.T1PINT = 1;
执行前,EVAIFRA值为0x028E;
执行后,整个EVAIFRA都被复位,导致其他ISR服务程序不能响应。
但是程序在RAM进行仿真时,是正常的。
Yang Liu29:
在RAM中仿真后, 发现在其他的ISR程序中,执行
EvaRegs.EVAIFRA.bit.T1UFINT = 1;
同样的,整个EVAIFRA都被复位。
EVAIFRA寄存器是不是不能位操作,只要对其进行写,不管是写整个寄存器,还是写其中的位,都会整个复位?
interrupt void ADC_FIR_INT_ISR(void)
{
volatile Uint16 *p;
Uint16 k ;
EvaRegs.EVAIFRA.bit.T1PINT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
。。。。。。。。。。。。。。。。。。。。
程序烧写到FLASH后,进行仿真时,到
EvaRegs.EVAIFRA.bit.T1PINT = 1;
执行前,EVAIFRA值为0x028E;
执行后,整个EVAIFRA都被复位,导致其他ISR服务程序不能响应。
但是程序在RAM进行仿真时,是正常的。
mangui zhang:
回复 Yang Liu29:
烧写到flash 进行仿真 应该还是在RAM中跑的
interrupt void ADC_FIR_INT_ISR(void)
{
volatile Uint16 *p;
Uint16 k ;
EvaRegs.EVAIFRA.bit.T1PINT = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
。。。。。。。。。。。。。。。。。。。。
程序烧写到FLASH后,进行仿真时,到
EvaRegs.EVAIFRA.bit.T1PINT = 1;
执行前,EVAIFRA值为0x028E;
执行后,整个EVAIFRA都被复位,导致其他ISR服务程序不能响应。
但是程序在RAM进行仿真时,是正常的。
Jason Wu4:
回复 Yang Liu29:
EVAIFRA寄存器可进行位操作,不管是位读还是位写均不会影响该寄存器其他位的值。