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

QQ登錄

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

搜索
查看: 2027|回復(fù): 6
收起左側(cè)

51單片機(jī)運(yùn)行優(yōu)化問(wèn)題

[復(fù)制鏈接]
ID:773929 發(fā)表于 2024-1-17 11:38 | 顯示全部樓層 |閱讀模式
大佬們,使用stc32G單片機(jī),使用的外部11.0592M晶振,使用了四個(gè)外部中斷資源,使用了四個(gè)定時(shí)器中斷,滿負(fù)荷運(yùn)行時(shí),四個(gè)外部中斷會(huì)一直中斷(接的四個(gè)光電編碼器),四個(gè)定時(shí)器中斷基本都是延時(shí)flag變量(但延時(shí)較多,變量也較多),使用的時(shí)序模塊比如D3231和oled12864,感覺(jué)運(yùn)行很慢,12864該刷新的時(shí)候總會(huì)停一下,我四個(gè)定時(shí)器中斷時(shí)間是兩個(gè)1ms,兩個(gè)2ms,目前想把外部晶振換16M(因使用場(chǎng)地有大型電機(jī),晶振采用較低頻率),各位大佬可不可以給點(diǎn)建議
回復(fù)

使用道具 舉報(bào)

ID:226055 發(fā)表于 2024-1-17 12:28 | 顯示全部樓層
STC32G有DMA外設(shè),想辦法把這個(gè)用起來(lái),減輕CPU壓力,看看實(shí)效性會(huì)不會(huì)提高。
回復(fù)

使用道具 舉報(bào)

ID:458247 發(fā)表于 2024-1-17 13:03 | 顯示全部樓層
中斷里代碼少寫一點(diǎn),其他模塊有超過(guò)100us的延時(shí),都做成分時(shí)驅(qū)動(dòng),不要用延時(shí)函數(shù)。可以的話把代碼發(fā)上來(lái),才好跟你說(shuō)優(yōu)化方案
回復(fù)

使用道具 舉報(bào)

ID:458247 發(fā)表于 2024-1-17 13:05 | 顯示全部樓層
感覺(jué)你說(shuō)的這幾個(gè)功能,不應(yīng)該已經(jīng)滿負(fù)載了啊,stc32G運(yùn)行速度挺快的了
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2024-1-17 13:41 | 顯示全部樓層
把代碼里面的delay全部去掉還卡死才需要考慮換更好的單片機(jī)。
回復(fù)

使用道具 舉報(bào)

ID:879348 發(fā)表于 2024-1-17 13:49 | 顯示全部樓層
你說(shuō)的應(yīng)用應(yīng)該無(wú)壓力的,應(yīng)該是你的操作出現(xiàn)了沒(méi)必要的等待
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2024-1-17 15:37 | 顯示全部樓層
這個(gè)是不會(huì)有什么壓力的,就算是用STC的8位單片機(jī)運(yùn)行都不會(huì)有壓力
12864可以用SPI讀寫,不需要每次都寫完整個(gè)屏幕,寫一個(gè)字節(jié)就退出函數(shù),等待可以用標(biāo)志位來(lái)代替delay類的死等延時(shí)
中斷里面不要有太多的數(shù)據(jù)處理
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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