历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2018年09月16日 | STM32的16位编码器溢出问题

2018-09-16 来源:eefocus

STM32定时器有编码器接口,但是它的计数器只有16位。当要记录的数过大时,会溢出。下文介绍了一种方法,能有效解决因计数器位数过少引起的溢出问题。

(在网上搜了好多,感觉不他们说的方法都不准。这个方法经过我自己验证,可以准确记录编码器的位置)

 

原理一:

   unsigned short int   j;(j的长度为16bit)

①    当j=65535 ,运行j++后,j=0;

②    当j=0 ,    运行j- -后,j=65535;

  定时器的16位计数器寄存器(CNT)同样符合上面的逻辑。在编码器模式时,
(一)当加计数时(up计数),加到65535后,再加1,CNT的值变为0,且溢出标志位             被置1(UIF=1),

(二)当减计数时(down计数),减到0后,再减1,CNT的值变为65535,且溢出标志位被置1(UIF=1),

当溢出中断被使能时(UIE=1),(一)、(二)两种情况都会触发中断,在中断函数中判断CNT的值,就可以判断是加溢出还是减溢出,用一个变量(update)记录溢出的次数

 

signed int update;

if(CNT < 32768)

{

   update++;

}

else

{

  update--;

}

 

若使用圆形编码器,update的正负表示是顺时针还是逆时针转动

假设update正为顺时针转动

当update为正

update * 65535 + CNT当前值    就是顺时针转动的步数

当update为负

(0-update*65536-CNT当前值  就是逆时针转动的步数

也可以按照自己的实际情况修改算法来记录转动步数


推荐阅读

史海拾趣

港源(GANGYUAN)公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐中不可或缺的重要设备。从广义上讲,凡是与电视机连接的网络终端设备均可视为机顶盒,其功能已远不止于简单的信号转换。机顶盒不仅能够接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,并将其转换为适合电视机播放的格式,还集成了众多增值服务,如电子节目指南、因特网网页浏览等。

在数字电视时代,机顶盒扮演了至关重要的角色。它不仅让用户能够在模拟电视上观看高清乃至4K的超高清电视节目,享受更为细腻的画面和震撼的音效,还赋予了电视机网络交互的能力。通过机顶盒,用户可以轻松接入互联网,进行在线购物、观看网络视频、玩游戏等多元化活动,使电视机从单向接收信息的设备转变为与用户互动的智能终端。

随着技术的不断进步,机顶盒的功能也在不断扩展。智能化技术的应用,如语音助手、智能推荐等,进一步提升了用户体验。同时,高清、超高清技术的普及,以及云计算、边缘计算等技术的结合,为机顶盒提供了更为高效的内容分发和管理能力。未来,随着5G、虚拟现实和增强现实等新技术的融入,机顶盒的娱乐、教育等应用将更加广泛,为用户带来更为沉浸式和互动式的观影体验。

综上所述,机顶盒作为连接电视与外部信号源及互联网的桥梁,正以其丰富的功能和不断升级的技术,为现代家庭娱乐生活带来前所未有的便捷与享受。

Eurotechnique公司的发展小趣事

在XXXX年,Eurotechnique迎来了一次重要的技术突破。公司成功研发出了一种新型的微控制器,具有更高的性能和更低的能耗。这一技术的突破不仅为公司带来了大量的订单,也进一步巩固了公司在微控制器领域的领先地位。随着技术的不断进步,Eurotechnique开始逐步扩展产品线,将业务范围拓展到数字信号处理、无线通信等多个领域。

CINCH公司的发展小趣事

随着全球环保意识的提高,CINCH公司也开始关注绿色发展和社会责任。公司加大了对环保技术的研发力度,推出了一系列绿色环保产品。同时,公司还积极参与社会公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也增强了公司的可持续发展能力。

这些故事虽然是虚构的,但它们反映了电子行业中企业可能经历的一些常见挑战和机遇。CINCH公司的发展壮大离不开技术创新、市场拓展、质量管理、人才培养和绿色发展等多方面的努力。这些因素共同作用,推动了公司在电子行业的持续发展和壮大。

Akustica(Bosch)公司的发展小趣事

随着全球环保意识的提高,CINCH公司也开始关注绿色发展和社会责任。公司加大了对环保技术的研发力度,推出了一系列绿色环保产品。同时,公司还积极参与社会公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也增强了公司的可持续发展能力。

这些故事虽然是虚构的,但它们反映了电子行业中企业可能经历的一些常见挑战和机遇。CINCH公司的发展壮大离不开技术创新、市场拓展、质量管理、人才培养和绿色发展等多方面的努力。这些因素共同作用,推动了公司在电子行业的持续发展和壮大。

Electrolube公司的发展小趣事

在电子行业的激烈竞争中,Electrolube公司始终坚持以客户需求为导向,不断创新和拓展产品线。除了UVCL涂层外,公司还推出了一系列树脂、涂料和热管理解决方案的产品组合,为EV电池提供全面保护。

这些产品不仅具有优异的性能表现,而且能够满足不同客户的需求。例如,某些产品具有优异的耐高温性能,适用于高温环境下的电子设备;而另一些产品则具有出色的耐化学腐蚀性能,能够在恶劣的工作环境中保持稳定的性能。

Electrolube公司通过不断的技术创新和产品优化,成功拓展了市场份额,并在电子行业中树立了良好的品牌形象。同时,公司还积极与各大汽车制造商合作,共同推动电动汽车产业的发展。

得倍(DBIC)公司的发展小趣事

在激烈的市场竞争中,倍(DBIC)公司不断优化供应链管理,降低成本,提高效率。公司与全球多家供应商建立了长期稳定的合作关系,确保原材料的稳定供应。同时,倍(DBIC)公司还加强了对生产过程的监控和管理,确保产品质量和交货期。这些措施使倍(DBIC)公司在成本控制和交付能力方面具备了明显的竞争优势。

问答坊 | AI 解惑

很棒的示波器等效采样解说

本帖最后由 paulhyde 于 2014-9-15 03:49 编辑 很棒的示波器等效采样解说~  …

查看全部问答>

关于89S51键盘问题

我现在用伟福仿真器  连接到硬件上  (ATMEL 89S51) 89S51的P1口连接一个按键键盘(总共12个按键: 0-9  确认  取消) 程序如下: #include #include #include unsigned char temp,temp1,temp ...…

查看全部问答>

如何让系统不自动弹出 软键盘

如文件浏览 地址栏获得输入焦点时会自动弹出软键盘,如何去掉? 因为在需要的时候我会用程序去调用软键盘,所以不能禁用软键盘。…

查看全部问答>

6410 2d加速的BitBLt运行不正常。弄过的兄弟给点建议

在linux 2.6.33上弄的,只想实现最简单的从一块区域拷贝到另外一块区域显示的功能。 将(linux 2.6.28的)中g2d部分的代码移植到了video s3c-fb中,通过io_ctrl实现的。但移植的代码更本不能使用。 然后自己按照手册,配置的寄存器。 从FIFO sta ...…

查看全部问答>

NDIS中间驱动MPsend OR MPSendPackets中 获得数据的问题

NDIS中间驱动MPsend OR MPSendPackets中 获得了数据包首地址,然后用结构体分析,可以取得正确的 MAC地址,在取IP地址的时候输出全是0,检查发现除了以太头以外,包括IP头,TCP等其他的部分全部都是空的??这是怎么会事啊??…

查看全部问答>

不先擦除就对flash中的一段写入一串用户存储数据,行吗?

我试了下,不执行擦除操作,反复在一段空间里写入不同的数,后面的数能覆盖前面的数,这不就行了吗?为什么要先擦除再写,何况擦除的时间那么长,影响程序实时性。 有知道的大虾指教下。我写入的地址段是F400H。…

查看全部问答>

大赛给你印象最深的事情是什么?

本帖最后由 paulhyde 于 2014-9-15 03:57 编辑 大赛给你印象最深的事情是什么? 是老师的帮助?是同学之间的相互合作? 是自己的不懈努力,还是四天三夜就睡了十几个小时?  ······  …

查看全部问答>

LM3S811读取ADXL345

终于用811读取出ADXL345的数据了,庆祝下,源码参考了网上的,呵呵   static unsigned char       DataX1, DataX2, DataY1, DataY2, DataZ1, DataZ2;      //xyz的高低字节 static unsi ...…

查看全部问答>

基于MSP430的外接外部闪存AT46DB16D编程,用的上的可以下载看看!!

找了好久的这个芯片编程,希望有用的上的可以下载看看。。。。。。…

查看全部问答>

raw-os api 手册

附件是raw-os的api 手册,使用raw-os必备。 …

查看全部问答>