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

QQ登錄

只需一步,快速開始

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

關(guān)于STC單片機(jī)PWM關(guān)閉

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:419045 發(fā)表于 2022-12-15 10:40 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)教下 我用PWM控制電機(jī)速度改變頻率可以實(shí)現(xiàn) ,現(xiàn)在想按下開始按鍵后PWM運(yùn)行,然后按下關(guān)閉按鍵 PWM停止工作  CR = 0,然后按下另一個(gè)鍵for循發(fā)送50個(gè)脈沖控制電機(jī)角度 ,現(xiàn)在是CR = 0后,電機(jī)不轉(zhuǎn) 但是有電流 這是為什么 是因?yàn)镻WM沒(méi)關(guān)閉嗎還是因?yàn)镻WM后 IO口還是PWM輸出口 沒(méi)有改成通用IO口

1671071468632.png (66.76 KB, 下載次數(shù): 50)

1671071468632.png

1671071501033.png (23.08 KB, 下載次數(shù): 53)

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

使用道具 舉報(bào)

沙發(fā)
ID:1034262 發(fā)表于 2022-12-15 12:18 | 只看該作者
示波器看一下就知道了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:879348 發(fā)表于 2022-12-15 14:38 | 只看該作者
很多單片機(jī)PWM置0還是有1/256的脈沖
回復(fù)

使用道具 舉報(bào)

地板
ID:1034262 發(fā)表于 2022-12-15 15:28 | 只看該作者
wufa1986 發(fā)表于 2022-12-15 14:38
很多單片機(jī)PWM置0還是有1/256的脈沖

STC的單片的PWM是可以連續(xù)輸出0或1的。
回復(fù)

使用道具 舉報(bào)

5#
ID:401564 發(fā)表于 2022-12-15 16:24 | 只看該作者
STC的PWM關(guān)閉并不是使端口輸出低電平,只是關(guān)閉了PWM的時(shí)鐘而已,端口在你關(guān)閉PWM那一刻是什么電平,之后就一直是這個(gè)電平
以下是STC8G的關(guān)閉,并使端口低電平
        CR=0;                                        //
        CCAPM1=0x00;                        //
        CCAP1H=0xff;                        //PWM保持低電平
        PCA_PWM1=0x02;                        //
回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2022-12-15 17:22 | 只看該作者
控制CR只是啟/停PCA定時(shí)器,并不能確定輸出口的電平狀態(tài)。以前做過(guò)一個(gè)項(xiàng)目用到PWM開停,寫CCAP0H=0xff;用占空比0%不理想,輸出端還有零星脈沖。后來(lái)改用AUXR1特殊功能寄存器把輸出腳切換到空閑腳,輸出端回復(fù)到普通IO口,初始設(shè)置低電平的方法解決的。有沒(méi)有更好的方法就沒(méi)有繼續(xù)探索。
回復(fù)

使用道具 舉報(bào)

7#
ID:814525 發(fā)表于 2022-12-15 21:18 | 只看該作者
STC頭文件引用就可以了,測(cè)過(guò)有效
#define                PWM0_NORMAL()        PCA_PWM0 &= ~3                                //PWM0正常輸出(默認(rèn))
#define                PWM0_OUT_0()        PCA_PWM0 |=  3                                //PWM0一直輸出0
#define                PWM0_OUT_1()        PCA_PWM0 &= ~3, CCAP0H = 0;        //PWM0一直輸出1

#define                PWM1_NORMAL()        PCA_PWM1 &= ~3                                //PWM1正常輸出(默認(rèn))
#define                PWM1_OUT_0()        PCA_PWM1 |=  3                                //PWM1一直輸出0
#define                PWM1_OUT_1()        PCA_PWM1 &= ~3, CCAP1H = 0;        //PWM1一直輸出1

#define                PWM2_NORMAL()        PCA_PWM2 &= ~3                                //PWM2正常輸出(默認(rèn))
#define                PWM2_OUT_0()        PCA_PWM2 |=  3                                //PWM2一直輸出0
#define                PWM2_OUT_1()        PCA_PWM2 &= ~3, CCAP2H = 0;        //PWM2一直輸出1
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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