打印
[技术问答]

HC32L136通用定时器中的数据缓存问题

[复制链接]
844|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 vinci25031891 于 2020-5-13 15:59 编辑

请教大神,在HC32L136用户手册中有一下疑问:如图,在通用定时器的数据缓存中,在锯齿波下行计数如图1,2中,ARR的数据已经更新到ARRBUF,但是计数器中更新的计数器上限值还是之前的ARRBUF的值,这个更新生效需要在下一个周期。但是锯齿波上行计数如图3,4中,这个ARRBUF更新立刻在计数器中生效。这是为什么呢?同样的,在三角波中,也是立刻生效的。
再者,在比较寄存器缓存时,它是否也会有一样的表现呢?

1.png (264.31 KB )

1.png

使用特权

评论回复
沙发
martinhu| | 2020-5-13 16:20 | 只看该作者
在缓存使能的时候,从ARR更新到ARRBUF的时间节点就是在上溢或者下溢的时候。
你提到的上溢和下溢的ARRBUF生效到周期不一致的现象,其实是一个更新节点先后的关系。
比如下行计数,在下溢的时候,周期肯定是先按照之前的ARRBUF的值,这样CNT从0到之前的ARRBUF的值,然后往下计数,然后同时ARRBUF的值使用新的ARR值来更新。
上行计数也是一样,上溢的时候,CNT从ARRBUF的值到0,从0往上计数,此时ARRBUF的值被ARR值更新,这样,这一周期的CNT计数就会计数到新的ARRBUF的值。

使用特权

评论回复
板凳
vinci25031891|  楼主 | 2020-5-14 10:23 | 只看该作者
martinhu 发表于 2020-5-13 16:20
在缓存使能的时候,从ARR更新到ARRBUF的时间节点就是在上溢或者下溢的时候。
你提到的上溢和下溢的ARRBUF生 ...

在UEV的时候,一个是cnt从ARRBUF更新数据,一个是ARRBUF从ARR更新数据。所以有一个更新次序的问题。在下行计数时,是CNT先更新,ARRBUF后更新,而在上行计数时,是ARRBF先更新,CNT后更新。这个次序是固定的吗?在比较寄存器缓存时,也是这个次序吗?

使用特权

评论回复
地板
martinhu| | 2020-5-15 13:18 | 只看该作者
CNT只是计数器,所计数的值依据ARRBUF的值

使用特权

评论回复
5
vinci25031891|  楼主 | 2020-5-15 17:01 | 只看该作者
martinhu 发表于 2020-5-15 13:18
CNT只是计数器,所计数的值依据ARRBUF的值

明白了,在上升的时候不存在ARRBUF的值存到CNT的问题。只有下降计数时才有。我太迷糊了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

23

帖子

0

粉丝