历史上的今天
今天是:2024年09月16日(星期一)
2018年09月16日 | stm32中编码器模式读出“负数”的问题
2018-09-16 来源:eefocus
最近在调试平衡小车,在网上找到的关于直流电机编码器的使用源码。查看stm32使用手册可以看到如下的配置,和图片。基本上程序也是这样去设置的相关寄存器的。
如果TI1和TI2分别接电机的A相和B相的话,那么,当电机正转的时候,如下图计数器回想上计数,反转的时候会向下计数,注意了这个向下计数并不会出现负的值,依旧是从(0-ARR)计数。
这种模式的好处:1.上升沿和下降沿都会计数,所以被软件4倍频了。2.当某一相有毛刺的时候,计数器会在硬件上停止计数。
下面看网上找到的代码。
int Read_Encoder(u8 TIMX)
{
int Encoder_TIM;
switch(TIMX)
{
case 2: Encoder_TIM= (short)TIM2 -> CNT; TIM2 -> CNT=0;break;
case 3: Encoder_TIM= (short)TIM3 -> CNT; TIM3 -> CNT=0;break;
case 4: Encoder_TIM= (short)TIM4 -> CNT; TIM4 -> CNT=0;break;
default: Encoder_TIM=0;
}
return Encoder_TIM;
}
上面这样传进去要读的定时器,返回的是相关编码器的速度值。但是为什么,会是一个负数呢。计数器只能计数(0-ARR)
注意看上面使用了强制类型装换。把寄存器的值读出来了之后,转换成了short型(2字节,32位系统下),范围为(-32768-32767),此时当我们把计数器的初始值设置为0之后,如果出现反转,它就会从0开始向下计数(0,65535,65534,...)但是经过强制类型转换之后就变成了(0,-1,-2,...)。
为什么65535会变成-1这是我不能理解的,此时我们回到short的表示范围(-32768-32767),也就是说当读出来的值为(32767, 32768, 32769,...,65535,65536,65537...)的时候会因为溢出而转换为
(32767,-32768,-32767,..., -1, ,0, , 1)就这样不断地循环下去。所以我们的电机反转的时候读出的数就是反方向的速度值。而不必用65535去减去读出的值再加上负号才可以的到方便观察的值。只需要一个强制类型转换就可以了。
史海拾趣
|
电源模块N+k工作方式对电源系统可靠性的影响 影响高频开关电源系统可靠性的因素主要有电源模块的可靠性,高频开关电源模块的热备份数量对可靠性的改善等。由于电源系统的交直流配电使用的元、器件较少,分析时可认为其可靠度RP(t)=1。 1高频开 ...… 查看全部问答> |
|
磁盘的一直在转,而且磁道是完全对称的环形,怎么准确寻址扇区呢? 扇区的绝对地址是相对于第0个扇区来说的,可是磁盘的一直在转,而且磁道是完全对称的环形,没有任何一个扇区在物理上是特殊的,系统是怎么寻址磁盘的第0扇区的呢?… 查看全部问答> |
|
我系一在校学生,导师弄了块 techwell tw6802(似乎又象6805)的视频采集卡,让我写个linux驱动。 在官方网站上没有一点与技术相关的资料, 真奇怪。 请有做过这方面的朋友 能否发点 与tw6802/tw6805相关的资料(比如datasheet,代码都可)给 ...… 查看全部问答> |
|
晶振频率11.0592MHZ 源程序如下: 问题是 利用串口调试软件运行时,反复输入U后经采样转换数据不一致,即模拟信号转成数字量的值 跳变太大。。。请教专家!!! CS BIT P1.1 &n ...… 查看全部问答> |
|
我用的Sensor是200万的,芯片输出为1600×1200,而我在应用层只采取了 1600×1130,我不确定是不是这样引起图像不同步的原因,还是别的什么原因。 … 查看全部问答> |
|
本人是计算机专业的。由于现在快踏入大三的下学期了,大四下学期也就要找工作了,但我觉得现在自己学的东西还太片面了,也太广了。所以我想找一门自己感兴趣的专业方向作为自己这未来一年的奋斗目标,同时也为了将来的工作需要同,学一门精的课程。 ...… 查看全部问答> |
|
STM32具有12BIT ADC 确实很好,很强大!但也担心它的精度问题,听闻有3BIT线形误差。下面是AT91SAM7S64关于ADC误差的说明。… 查看全部问答> |
|
http://www.stmsky.com/bbs/viewthread.php?tid=1446&extra=网络版原理图==stm32核心板+w5100模块可以直接联网 ping 192.168.1.2直接打开 显示 hello world… 查看全部问答> |




