1、请问这个 URS 是不是写错了,我感觉应该是 UDIS 。URS 是控制是否产生更新事件标志,而不是控制后半句所说的产生更新事件。 2、请问从模式的复位模式是不是当检测到外部触发条件后,硬件对 UG 位进行了一次置位。手册中没这么说,但是所举的例子中当检测到TI1的上升沿以后,UG 位被置1。 3、根据前面的介绍,理解将 CEN 置位一个时钟周期以后产生真正的使能信号 CNT_EN,这之后内部时钟就送到Prescaler里以至后面的计数器就开始计数了。而在门控模式中是不是又多了一层限制?因为门控模式下必须将CEN置位,但是这个置位并不能启动计数器,也就是不能产生真正的使能信号 CNT_EN,只有外部触发信号满足相应的电平以后,才能产生真正的使能信号 CNT_EN,计数器才会计数。请问这种理解对不对。 4、请问触发模式里的描述是不是有些问题,例子中说要检测TI2的上升沿,可配置中将CC2P写1,检测低电平。 |
RE:初学者,请版主耐心解答一下,谢谢!
2、控制电路和向上计数器在一般模式下,不带预分频器时的操作。只有开启以后才会将UG为设置
3、置TIMx_CR1寄存器中CEN=1,启动计数器。在门控模式下,如果CEN=0,则计数器不能启动,不论触发输入电平如何。
4、配置通道2检测TI2的上升沿。配置输入滤波器带宽(本例中,不需要任何滤波器,保持IC2F=0000)。触发操作中不使用捕获预分频器,不需要配置。CC2S位只用于选择输入捕获源,置TIMx_CCMR1寄存器中CC2S=01。置TIMx_CCER寄存器中CC2P=1以确定极性(只检测低电平)。
回复:初学者,请版主耐心解答一下,谢谢!
1、是说如果URS位为低,一个更新时间发生。设置TIMx_CR1寄存器中的UDIS位,可以禁止更新事件。
2、控制电路和向上计数器在一般模式下,不带预分频器时的操作。只有开启以后才会将UG为设置
3、置TIMx_CR1寄存器中CEN=1,启动计数器。在门控模式下,如果CEN=0,则计数器不能启动,不论触发输入电平如何。
4、配置通道2检测TI2的上升沿。配置输入滤波器带宽(本例中,不需要任何滤波器,保持IC2F=0000)。触发操作中不使用捕获预分频器,不需要配置。CC2S位只用于选择输入捕获源,置TIMx_CCMR1寄存器中CC2S=01。置TIMx_CCER寄存器中CC2P=1以确定极性(只检测低电平)。
版主您好,感谢您的回答,不过感觉您是把与我问题相关的那一部分手册翻译了一下。关于我问题所涉及到的部分,中英手册我都看过了,多数问题都是感觉手册可能写的有问题,你单纯帮我翻译一下没能帮我解决疑惑啊。还是麻烦您仔细帮我看看,先谢谢了。
RE:初学者,请版主耐心解答一下,谢谢!
你还有哪个不明白,你说一下,我们慢慢讨论。
1、UDIS是使能位,开启或者关闭更新事件产生。URS是当产生更新事件以后这以为被拉低,他是个状态指示位。
2、UG:产生更新事件 (Update generation)。该位由软件置’1’,由硬件自动清’0’。这个是用来重新初始化计数器的,在设置的时候会用到。
3、CEN:使能计数器。在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。
回复:初学者,请版主耐心解答一下,谢谢!
这个有时候也需要自我理解,然后再动手测试,就明白了。光说理论,是不行的。
你还有哪个不明白,你说一下,我们慢慢讨论。
1、UDIS是使能位,开启或者关闭更新事件产生。URS是当产生更新事件以后这以为被拉低,他是个状态指示位。
2、UG:产生更新事件 (Update generation)。该位由软件置’1’,由硬件自动清’0’。这个是用来重新初始化计数器的,在设置的时候会用到。
3、CEN:使能计数器。在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。
那先说第一个问题。UDIS位和您讲的没有异议,它就是一个允许/不允许产生更新事件的控制位。我对URS的理解是如果允许产生UEV了,URS来控制哪种事件(1、计数器上下溢;2、设置UG位;3、从模式控制器产生的更新)引起的UEV才允许设置中断标志UIF。URS = 0:三种事件都可以;URS = 1:只有计数器上下溢可以。
而我最开始的一个问题的关键点是,手册里写“如果URS位是低的话,产生一个UEV事件”我感觉应该是说“如果UDIS位是低的话,产生一个UEV事件”,因为控制产不产生UEV的位是UDIS而不是URS,URS是控制中断标志的。
回复:初学者,请版主耐心解答一下,谢谢!
这个有时候也需要自我理解,然后再动手测试,就明白了。光说理论,是不行的。
你还有哪个不明白,你说一下,我们慢慢讨论。
1、UDIS是使能位,开启或者关闭更新事件产生。URS是当产生更新事件以后这以为被拉低,他是个状态指示位。
2、UG:产生更新事件 (Update generation)。该位由软件置’1’,由硬件自动清’0’。这个是用来重新初始化计数器的,在设置的时候会用到。
3、CEN:使能计数器。在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。
关于第二个问题,我开始理解的UG位要干4件事:
①初始化计数器(根据计数方向,选择将counter清0或者写ARR值);
②清零预分频器;
③产生更新事件(如果UDIS = 0);
④硬件对UG位清0。
手册中也说了,该位由软件设置,硬件清0。
对于从模式复位模式的描述中,如果产生了触发条件,也是干这么几件事:
①初始化计数器(根据计数方向,选择将counter清0或者写ARR值);
②清零预分频器;
③产生更新事件(如果UDIS = 0)。
而且截图中,在产生了一个上升沿以后,UG位被置位随后又被清零。清零是硬件干的,那么置位呢,应该也是硬件干的吧。所以我第二个问题想问,是不是在满足了触发条件时,硬件执行了一次对UG位的置位过程。
回复:初学者,请版主耐心解答一下,谢谢!
这个有时候也需要自我理解,然后再动手测试,就明白了。光说理论,是不行的。
你还有哪个不明白,你说一下,我们慢慢讨论。
1、UDIS是使能位,开启或者关闭更新事件产生。URS是当产生更新事件以后这以为被拉低,他是个状态指示位。
2、UG:产生更新事件 (Update generation)。该位由软件置’1’,由硬件自动清’0’。这个是用来重新初始化计数器的,在设置的时候会用到。
3、CEN:使能计数器。在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。
第三个问题主要是想弄清楚 CEN 和 CNT_EN 的关系。手册中说过,从软件设置 CEN 到产生真正的使能信号 CNT_EN 需要一个时钟周期。所以我理解程序只能设置 CEN位,但是设置了该位计数器不会使能,只有一个时钟周期以后产生了真正的使能信号 CNT_EN 后,计数器才被使能并开始计数。
而从模式的门控模式好像是一个特例,图中我标出的那部分主要意思是:想使用从模式必须要满足两个条件
①将CEN位置1;
②外部触发符合你所设置的电平。
如果按照一开始的理解,正常模式下,满足①在一个时钟周期后计数器就已经使能并开始计数了,而从模式门控模式下则不行,设置了CEN以后不会产生真正的使能信号CNT_EN,而是需要外部触发也满足设定的电平,硬件才会将CNT_EN置位。
回复:初学者,请版主耐心解答一下,谢谢!
这个有时候也需要自我理解,然后再动手测试,就明白了。光说理论,是不行的。
你还有哪个不明白,你说一下,我们慢慢讨论。
1、UDIS是使能位,开启或者关闭更新事件产生。URS是当产生更新事件以后这以为被拉低,他是个状态指示位。
2、UG:产生更新事件 (Update generation)。该位由软件置’1’,由硬件自动清’0’。这个是用来重新初始化计数器的,在设置的时候会用到。
3、CEN:使能计数器。在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。触发模式可以自动地通过硬件设置CEN位。
关于问题4,我是想问,描述中明明说“触发条件是检测到TI2上的上升沿”可是下面描述中又说配置CC2P=1(只检测低电平),我感觉是比较明显的矛盾,想问一下是不是手册写错了。
RE:初学者,请版主耐心解答一下,谢谢!
这一位在软件选择UEV事件源以后,被清除。这一位置1说明当前产生了一个UEV事件。这以为是一个状态位,而不是控制位,这个不需要我们来设置,而由硬件在产生。
RE:初学者,请版主耐心解答一下,谢谢!