ATOM配置出现的问题

  在配置英飞凌TC3XX芯片的定时器,GTM ATOM定时器时,遇到问题:单独配置atom的channel时,定时器可以正常出发超时回调,one shot和循环模式,修改cmp值均符合预期,但是当配置多个channel时,会出现某些定时器的channel超时中断无法触发,查看定时器的cm和sr等寄存器均正确。

  翻阅英飞凌文档发现:对于GTM的ATOM的相邻通道共享同一个中断线,如ATOM[i]_CH[2x]和ATOM[i]_CH[2x+1]是共享一个中断线的,而在配置时使ch4和5对应了不同的中断处理函数,可能会存在中断处理函数的二义性,从而导致无法确定在哪个中断处理函数处理中断,所以4和5都没有输出。也就出现了上面的问题,对应的CN0,CM0,SR0寄存器都是正确的,但无中断处理函数执行。
在这里插入图片描述
在这里插入图片描述
注意:
  ATOMx的相邻channel(我们用c0,c1来表示)共享同一个中断线,也就是说c0或者c1只要其中一个channel产生中断,那么中断线上都会有一个中断信号,并且触发中断处理函数,如果两个channel同时触发中断处理函数,那么也只会调用一个中断处理函数。在中断处理函数中通过CCUxTC来判断是哪个channel触发的中断
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐