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.

AM2432: Timer0,Timer8中断失效

Part Number: AM2432


冷启动调试程序,开始时,Timer可以正常产生中断,并进入中断服务。反复运行一段时间后,就会出现Timer中断失效,Timer计数器计数正常累加,检查Timer和VIM寄存器,一切都设置正常,就是没有中断。其他的ADC和PRU中断,都可以正常中断。仿真器重新加载程序,也没有中断,设置TIMER8_CFG_CFG_IRQ_EOI=0,还是没中断,必须要复位PORz冷启动,才能再次产生中断。以下是Timer和VIM的设置:

TIMER8_CFG_CFG_TIDR
50003900 00000000 00000000 00000000
TIMER8_CFG_CFG_TIOCP_CFG
00000008 00000000 00000000 00000000
TIMER8_CFG_CFG_IRQ_EOI
00000000
TIMER8_CFG_CFG_IRQSTATUS_RAW
00000005
TIMER8_CFG_CFG_IRQSTATUS
00000005
TIMER8_CFG_CFG_IRQSTATUS_SET
00000007
TIMER8_CFG_CFG_IRQSTATUS_CLR
00000007
TIMER8_CFG_CFG_IRQWAKEEN
00000007
TIMER8_CFG_CFG_TCLR
00000003
TIMER8_CFG_CFG_TCRR
FFFFBC21
TIMER8_CFG_CFG_TLDR
FFFF9E56
TIMER8_CFG_CFG_TTGR
FFFFFFFF
TIMER8_CFG_CFG_TWPS
00000000
TIMER8_CFG_CFG_TMAR
FFFFF000
TIMER8_CFG_CFG_TCAR1
00000000
TIMER8_CFG_CFG_TSICR
00000004
TIMER8_CFG_CFG_TCAR2
00000000
TIMER8_CFG_CFG_TPIR
00000000
TIMER8_CFG_CFG_TNIR
00000000
TIMER8_CFG_CFG_TCVR
00000010
TIMER8_CFG_CFG_TOCR
00000000
TIMER8_CFG_CFG_TOWR
00000000

  • 您好,有几个可能的原因需要排查。首先,你可以检查以下几点:

    1. 确保中断使能位被正确设置。通过检查相关寄存器(如TIMER8_CFG_CFG_IRQ_EOI)来确认是否正确启用了中断。

    2. 检查中断优先级设置。确保Timer的中断优先级设置正确,并且没有被其他中断抢占。

    3. 检查中断服务程序是否正确。确保你的中断服务程序被正确地注册,并且没有其他地方对中断进行了屏蔽或禁用的操作。

    4. 检查中断标志位是否被清除。在处理完中断后,确保你的中断服务程序正确地清除了中断标志位。

    如果以上步骤都没能解决问题,那可能需要进一步分析你的代码和硬件环境,以找到更具体的原因。希望这些提示能对你有所帮助!如果还有其他问题,请随时提问。

  • 好的,谢谢

  • 不客气,有问题随时交流,谢谢!