This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28069: TMS320F28069PNT

Part Number: TMS320F28069

请问一下,对于F28069中断,从手册上看,CPU会主动将IFRx, IERx,INTM清零,但是手册上没有给出是否会将这些位再重新置1,请问,CPU会在退出中断的时候这么做吗?

另外,从手册上看如果要使能PIERIFRx group中的其他中断,需要将PIEACKx清零;那对于不使能该PIERIFRx group中的其他中断就不需要将PIEACKx清零了?但是从手册上看,它在进入中断的时候还是会判断PIEACKx是否为0,那这个PIEACKx是谁将其清零的?

  • 你好,

    CPU会在退出中断的时候这么做吗?

    会的。

    但是从手册上看,它在进入中断的时候还是会判断PIEACKx是否为0,那这个PIEACKx是谁将其清零的?

    能否指明在哪一部分?

  • 您提到CPU在退出中断会将这些标志重新置1,请问这个有出处吗?

    另外对于第二个问题,出处是SPRUH18I 2022 JUNE修订版 P169  图1-94中, Stage J有提到需要将其清零,且在Stage C有提到会判断PIEACKx是否为0。我在程序中做了一个20us的timer 0中断,在ISR中并没有将PIEACKx清零,但是还是能够正常进入中断,这里蛮困惑的。

    另外图片要如何上传,还是我上传的图分辨率太高了?

  • CPU会在退出中断的时候这么做吗?

    抱歉这里说错了,这里应该是不会的。IFRx是中断标志位,发生了中断才会置1. IER是中断使能寄存器,不会自动清零的。Global interrupt mask (INTM) 也不会自动清零。我不太明白你这里说的自动清零是什么情况。

    那对于不使能该PIERIFRx group中的其他中断就不需要将PIEACKx清零了?

     这里同一时间只能有一个中断,其他中断是不用考虑的。

  • SPRUH18I 2022 JUNE修订版 P169  图1-94中有提到的。

    另外后面那个我的疑问是我们在ISR中需不需要将PIEACKx清零,如果不清零是否会导致下一次的中断无法进入?

  • 你是说的这个图吧,是的,根据这个图,在stage H,IFRx和IERx被清0,INTM被置1;在stage J,CPU会将PIEACKx置1,IERx置1(Re-enable interrupts),INTM清零。这里IERx是会置1的。

    另外后面那个我的疑问是我们在ISR中需不需要将PIEACKx清零,如果不清零是否会导致下一次的中断无法进入?

    是的,必须进行手动清零,它不会自动清零,否则将进入不了下次中断。