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

QQ登錄

只需一步,快速開(kāi)始

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

關(guān)于STC單片機(jī)1us定時(shí)誤差問(wèn)題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
芯片型號(hào)STC15W4K48S4  時(shí)鐘采用內(nèi)部時(shí)鐘24M  模式16位自動(dòng)重載
用定時(shí)器定時(shí)1us,變量做累加,發(fā)現(xiàn)定時(shí)時(shí)間一直存在誤差,后修改代碼做驗(yàn)證

按程序來(lái)說(shuō),輸出波形周期應(yīng)為2us,實(shí)際測(cè)試4us多,誤差有點(diǎn)大,修改程序繼續(xù)驗(yàn)證


注釋掉部分代碼之后,周期終于對(duì)了,所以確定是程序執(zhí)行所需時(shí)間導(dǎo)致輸出1us時(shí)間不準(zhǔn),但我需要1us時(shí)間,且需要調(diào)節(jié)這時(shí)間。
芯片速度不夠,不知道STM32可不可以做到?準(zhǔn)備換方案了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:57657 發(fā)表于 2022-11-8 12:13 | 只看該作者
自動(dòng)重裝初值模式,中斷內(nèi)不要賦值 TH0、TL0寄存器。
回復(fù)

使用道具 舉報(bào)

板凳
ID:807591 發(fā)表于 2022-11-8 12:25 | 只看該作者
1us除了中斷,能做的事不多了啊
回復(fù)

使用道具 舉報(bào)

地板
ID:86926 發(fā)表于 2022-11-8 14:08 | 只看該作者
賦值、指令執(zhí)行和判斷都是要花時(shí)間的;不同的指令執(zhí)行的時(shí)間也不一樣;而且1us那么短;對(duì)于這種芯片來(lái)說(shuō)還要調(diào)時(shí)間;肯定是吃不消的,要么用硬件pwm
回復(fù)

使用道具 舉報(bào)

5#
ID:941942 發(fā)表于 2022-11-8 14:09 | 只看該作者
stm32肯定可以達(dá)到
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-11-8 14:11 | 只看該作者
為什么非要用中斷呢?
用 INT_CLKO |= 0x01;  直接輸出不好么?
回復(fù)

使用道具 舉報(bào)

7#
ID:619250 發(fā)表于 2022-11-8 15:29 | 只看該作者

stm32的應(yīng)該沒(méi)問(wèn)題
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2022-11-8 16:36 | 只看該作者
自動(dòng)重裝不需要再給TH0、TL0賦值,2us周期脈沖也不適合用定時(shí)器中斷。改用高速脈沖輸出功能為宜。
回復(fù)

使用道具 舉報(bào)

9#
ID:1047954 發(fā)表于 2022-11-8 16:53 | 只看該作者
STC的下載軟件內(nèi)都有范例程序的,你可以用范例試試呢

下載軟件.png (75.33 KB, 下載次數(shù): 58)

下載軟件.png
回復(fù)

使用道具 舉報(bào)

10#
ID:1034262 發(fā)表于 2022-11-8 17:44 | 只看該作者
時(shí)間太短了,進(jìn)中斷處理、退出中斷,總時(shí)間已經(jīng)超過(guò)1us,所以會(huì)不準(zhǔn)。
回復(fù)

使用道具 舉報(bào)

11#
ID:883242 發(fā)表于 2022-11-8 20:09 | 只看該作者
發(fā)送連續(xù)波形完全可以用定時(shí)器自身的功能。只有單次輸出才需要中斷。
回復(fù)

使用道具 舉報(bào)

12#
ID:688692 發(fā)表于 2022-11-9 12:55 | 只看該作者
所有的鍋都甩給八位機(jī),就是不提系統(tǒng)架構(gòu)設(shè)計(jì),應(yīng)用合理性。
你STM32做1us的中斷也不見(jiàn)得中斷程序里面你能多跑幾條代碼
回復(fù)

使用道具 舉報(bào)

13#
ID:1051174 發(fā)表于 2022-11-9 13:12 | 只看該作者
自動(dòng)重裝初值模式,中斷內(nèi)不要賦值 TH0、TL0寄存器。
回復(fù)

使用道具 舉報(bào)

14#
ID:123289 發(fā)表于 2022-11-9 14:18 | 只看該作者
1、已經(jīng)設(shè)置為自動(dòng)從裝了,為何還要重置時(shí)常路,不合理。
2、每個(gè)us反轉(zhuǎn)輸出就完成2us的周期脈沖輸出了,為何還要用NUM數(shù)數(shù),也不合理。
兩個(gè)不合理,導(dǎo)致程序執(zhí)行時(shí)間過(guò)長(zhǎng),超出中斷時(shí)間!
根本問(wèn)題:中斷時(shí)間不能太短,當(dāng)中斷服務(wù)程序運(yùn)行時(shí)間>中斷時(shí)間時(shí),時(shí)序就控制不了了。
回復(fù)

使用道具 舉報(bào)

15#
ID:401564 發(fā)表于 2022-11-10 00:26 | 只看該作者
24MHZ在1T模式下,誤差最多就是1/24
做1uS肯定是沒(méi)有問(wèn)題的
問(wèn)題是,你要這1uS又是可調(diào)的干嘛?
如果是計(jì)時(shí),可以用定時(shí)器
如果輸出PWM......很少有用到1MHZ的PWM的
也許,你想要的功能,可以通過(guò)其它方式來(lái)實(shí)現(xiàn),還不如說(shuō)說(shuō)你要做什么好點(diǎn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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