找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3049|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

STM32編碼器模式下,定時(shí)器只有16位,不夠用怎么辦?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:734122 發(fā)表于 2022-1-6 10:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
小弟剛學(xué)STM32,用的STM32F103C6,連接一個(gè)分辨率為2000的編碼器
定時(shí)器選擇編碼器模式,選擇T1 T2都觸發(fā)
如果考慮逆時(shí)針和順時(shí)針的話,只能轉(zhuǎn)四圈就計(jì)數(shù)器就溢出了

請(qǐng)問有沒有什么解決辦法?
盡可能保證精度





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

9#
ID:152816 發(fā)表于 2022-12-7 14:24 | 只看該作者
coody_sz 發(fā)表于 2022-12-6 21:54
整一個(gè)32位變量,溢出中斷+或-1,這樣就有48位的值了。

這種方法不能清零
回復(fù)

使用道具 舉報(bào)

8#
ID:152816 發(fā)表于 2022-12-7 14:22 | 只看該作者
AUG 發(fā)表于 2022-1-6 15:19
16位定時(shí)器還不夠?是你的處理方式不對(duì),一圈才2000,你轉(zhuǎn)一圈的時(shí)間要多少,你10ms讀一次數(shù)然后清零計(jì)數(shù)值 ...

你這招式理解不了
回復(fù)

使用道具 舉報(bào)

7#
ID:1034262 發(fā)表于 2022-12-6 21:54 | 只看該作者
整一個(gè)32位變量,溢出中斷+或-1,這樣就有48位的值了。
回復(fù)

使用道具 舉報(bào)

6#
ID:152816 發(fā)表于 2022-12-6 20:33 | 只看該作者
188610329 發(fā)表于 2022-1-6 14:14
開中斷,溢出后中斷里給8位變量++, 那么你就等于有 24位 定時(shí)器了, 如果給 16位變量++, 那么你等于有32 ...

這個(gè)中斷在那里看不到
回復(fù)

使用道具 舉報(bào)

5#
ID:152816 發(fā)表于 2022-12-6 20:32 | 只看該作者
我也在糾結(jié)這個(gè)問題,好像沒有好的解決辦法
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2022-1-6 16:59 | 只看該作者
曾經(jīng)有個(gè)項(xiàng)目核心就是定時(shí)器,一查STM32定時(shí)器只有16位太沒有誠(chéng)意了吧!果斷換LPC1758,問題解決。
回復(fù)

使用道具 舉報(bào)

板凳
ID:313048 發(fā)表于 2022-1-6 15:19 | 只看該作者
16位定時(shí)器還不夠?是你的處理方式不對(duì),一圈才2000,你轉(zhuǎn)一圈的時(shí)間要多少,你10ms讀一次數(shù)然后清零計(jì)數(shù)值不就可以了?不存在你說的溢出好吧,除非你幾秒鐘才讀一次,那肯定會(huì)溢出的,想都不用想。
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:624769 發(fā)表于 2022-1-6 14:14 | 只看該作者
開中斷,溢出后中斷里給8位變量++, 那么你就等于有 24位 定時(shí)器了, 如果給 16位變量++, 那么你等于有32位定時(shí)器了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表