標(biāo)題: 關(guān)于8系PWM輸出設(shè)置 STC8H1K08單片機(jī) [打印本頁]
作者: happy2058 時(shí)間: 2023-4-6 20:23
標(biāo)題: 關(guān)于8系PWM輸出設(shè)置 STC8H1K08單片機(jī)
選用的單片機(jī)芯片8H1K08,只有定時(shí)器0,1,2 。 用了兩路串口分別是57600,9600.一個(gè)接屏幕,一個(gè)接讀卡器。占用兩個(gè)定時(shí)器,最后一個(gè)定時(shí)器用了計(jì)時(shí)和別的功能,現(xiàn)在還需要一路IO口輸出PWM功能,周期100us ,10us~20us可調(diào),只能用硬件了。對著例程弄了一天了。沒輸出。IO我已經(jīng)切換了,下面是我改的。還有時(shí)鐘也沒弄好。
void TxPulse()
{
P_SW2 = 0x80;
PWMA_CCER2 = 0x00; //寫CCMRx前必須先清零CCERx關(guān)閉通道
PWMA_CCMR4 = 0x60; //設(shè)置CC為PWMA輸出模式
PWMA_CCER2 = 0x10; //使能CC通道
PWMA_CCR4 = 100; //設(shè)置占空比時(shí)間
PWMA_ARR = 500; //設(shè)置周期時(shí)間
PWMA_ENO = 0x80; //使能PWM4N端口輸出
PWMA_BKR = 0x80; //使能主輸出
PWMA_CR1 = 0x01; //開始計(jì)時(shí)
}
51hei圖片_20230406201951.png (70.38 KB, 下載次數(shù): 66)
下載附件
2023-4-6 20:20 上傳
用的是PWM4N_2 P3.3
作者: 劉佑紅 時(shí)間: 2023-6-15 23:02
我也正在試驗(yàn)它,也是P3.3輸出,我覺得例程是PWM1P腳輸出的,要用PWMA通道4在P3.3輸出,還需定義輸出腳才行,所以在例程的基礎(chǔ)上增加了:PWMA_PS = 0xC0; //使能PWM4N端口選在P3.3(14腳),甚至還要改定義PWMA_CCER4和PWMA_CCMR4,但是否可以輸出,還沒有測試。
void pwmout(u16 zhankong)
{
P_SW2 |= 0x80; //使能XFR
PWMA_CCER1 = 0x00; //寫CCMRx前必須先清零CCERx關(guān)閉通道
PWMA_CCMR1 = 0x60; //設(shè)置CC1為PWMA輸出模式
PWMA_CCER1 = 0x01; //使能CC1通道
PWMA_CCR1 = zhankong; //設(shè)置占空比時(shí)間
PWMA_ARR = 99; //設(shè)置周期時(shí)間24MHZ時(shí),PWM輸出120KHZ
PWMA_ENO = 0x80; //使能PWM4N端口輸出
PWMA_PS = 0xC0; //使能PWM4N端口選在P3.3(14腳)
PWMA_BKR = 0x80; //使能主輸出
PWMA_CR1 = 0x01; //開始計(jì)時(shí)
}
作者: zxq9781 時(shí)間: 2023-6-21 22:47
io要配置推挽輸出
作者: 1241526990 時(shí)間: 2023-6-24 02:55
有些型號(hào)默認(rèn)輸出高阻態(tài),不知道你設(shè)置沒
還需要用輔助寄存器切換IO口
可以參考PCA相關(guān)例程
作者: 劉佑紅 時(shí)間: 2023-6-25 18:33
是設(shè)置的問題,以下我測試輸出正常,占空比符合設(shè)置預(yù)期。輸出端口也是P3.3
include<stc8h.h> //STC8H1K08 TSSOP20
sbit out = P3^3; //電機(jī)PWM信號(hào)輸出
/*************************主函數(shù)**********************************/
void main()
{
P0M0 = 0x00; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00;
P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x08; P3M1 = 0x00;
P5M0 = 0x00; P5M1 = 0x00;
P_SW2 = 0x80;
PWMB_CCER2 = 0x00; //寫CCMRx前必須先清零CCERx關(guān)閉通道
PWMB_CCMR3= 0x60; //設(shè)置CC7為PWMA輸出模式
PWMB_CCER2 = 0x01; //使能CC7通道
PWMB_CCR7 = 5; //設(shè)置占空比時(shí)間
PWMB_ARR = 999; //設(shè)置周期時(shí)間
PWMB_ENO = 0x10; //使能PWM7端口輸出
PWMB_PS = 0x10; //PWM7在P3.3輸出
PWMB_BKR = 0x80; //使能主輸出
PWMB_CR1 = 0x01; //開始計(jì)時(shí)
while (1);
}
作者: coody_sz 時(shí)間: 2023-6-25 19:57
建議先測試STC官方的例程,然后再修改移植。
作者: Aresxiaogui 時(shí)間: 2023-7-14 09:39
為什么我用這段代碼在keil上進(jìn)行軟件仿真時(shí)P3.3一直輸出的是高電平呢
作者: Aresxiaogui 時(shí)間: 2023-7-14 09:42
樓主搞定了嗎,我用P5.4想輸出PWM也一直輸出不了
作者: 劉佑紅 時(shí)間: 2023-7-17 21:02
剛測,正常輸出可調(diào)PWM,ARR和CCR采用預(yù)裝載方式,在使用中可隨時(shí)改變,寄存器初始化可參照設(shè)置。采用的STC8H1K16,P2.7腳輸出(PWM4N)
P_SW2 |= 0x80; //開啟P_SW2寄存器1000 0000
PWMA_CCER2 = 0x00; //寫CCMRx前必須先清零CCERx關(guān)閉通道
PWMA_CCMR4 = 0x68; //設(shè)置CC4為PWM輸出模式,開啟預(yù)裝載CCR4 0110 1000
//PWMA_CCMR4 = 0x78; //設(shè)置CC4為PWM輸出模式,開啟預(yù)裝載CCR4 0111 1000(負(fù)極性輸出)
PWMA_CCER2 = 0x40; //0100 0000單獨(dú)使能CC4N通道(不開CC4P),輸出高電平
PWMA_CCR4 = 2500; //設(shè)置占空比時(shí)間
PWMA_ARR = 5000; //設(shè)置周期時(shí)間
PWMA_PS = 0x40; //PWM4N在P2.7輸出0100 0000
PWMA_ENO = 0x80; //使能PWM4N端口輸出1000 0000
PWMA_BKR = 0x80; //使能主輸出1000 0000
PWMA_CR1 = 0x81; //開始計(jì)時(shí) 1000 0001開啟自動(dòng)預(yù)裝載PWMA_ARR
作者: Aresxiaogui 時(shí)間: 2023-7-18 09:29
請問你的頻率設(shè)置的多少呢,為什么我用你這個(gè)改一下在P54口輸出就沒有效果呢
作者: 劉佑紅 時(shí)間: 2023-7-18 10:35
我的PWM輸出頻率范圍是1-25KHZ(由外部電壓改變頻率),系統(tǒng)是12MHZ,PWM時(shí)鐘不分頻。STC8H1K08的P5.4是PWM6口輸出,相應(yīng)的寄存器需作對應(yīng)修改。
作者: 劉佑紅 時(shí)間: 2023-7-18 11:45
STC8H單片機(jī)PWM的寄存器太多,且有些寄存器的功能看著比較相似,手冊介紹的也不太清楚,難以區(qū)別,設(shè)置起來非常困難,我前前后后閱讀器多次并反復(fù)設(shè)置測試,PWM才正常,但其捕捉功能我現(xiàn)在還沒明白。
樓主的PWM沒有輸出,我在STC8H1K16的4N已輸出正常,頻率和占空比按照預(yù)設(shè)要求輸出,經(jīng)對比發(fā)現(xiàn)對寄存器的設(shè)置有以下不同:
51hei圖片_20230718110234.png (18.37 KB, 下載次數(shù): 47)
下載附件
2023-7-18 11:37 上傳
1. PWMA_CCMR4。 樓主設(shè)置 0x60=0110 0000,我設(shè)置的是0x68=0110 1000,我與樓主相比是多開啟了占空比數(shù)值預(yù)裝載功能。官方的例程僅是輸出PWM測試,不改變占空比CCR和計(jì)數(shù)周期ARR的數(shù)值,所以官方例程沒有開啟占空比和計(jì)數(shù)周期預(yù)裝載功能,在實(shí)際應(yīng)用時(shí)大都需要是是調(diào)整占空比和頻率,更改預(yù)裝載值,故大多數(shù)情況下是開啟。
2. PWMA_CCER2。樓主設(shè)置0x10=0001 0000,使B4位的CC4E=1,開啟的是4P比較功能,我設(shè)置的是0x40=0100 0000,使B6位的CC4NE=1,開啟的是4N比較功能。
我們開啟的是4N功能,故PWMA_CCER2應(yīng)該設(shè)置為0x40才行。
3.樓主沒有設(shè)置PWMA_PS,即PWMA_PS是復(fù)位值0x00,其設(shè)置為4N在P1.7腳輸出;我設(shè)置PWMA_PS = 0x40=0100 0000,設(shè)置4N在P2.7腳輸出。樓主的是STC8H1K08,4N欲在P3.3輸出,設(shè)置PWMA_PS= 0xC0才行(11000000)。
4.PWMA_CR1。區(qū)別同1,我是開啟了ARR預(yù)裝載功能。
作者: coco1016 時(shí)間: 2023-8-5 08:31
說得很詳細(xì),剛好有個(gè)項(xiàng)目要用,參考下,謝謝
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
国产精品爱久久久久久久
|
欧美激情国产精品
|
国产精品毛片一区二区在线看
|
超碰97免费观看
|
日日做夜夜爽毛片麻豆
|
99精品视频在线
|
亚洲精品视频免费
|
天天天操操操
|
www.色综合|
一级毛片视频
|
日韩午夜电影在线观看
|
欧美日韩久
|
欧美中文字幕在线观看
|
欧美精品91
|
男女羞羞视频网站
|
国产高清一区二区三区
|
韩日一区二区三区
|
久久久久成人精品
|
激情六月丁香婷婷
|
欧美福利|
成人免费网站
|
成人夜晚看av
|
亚洲欧美在线观看
|
成人h动漫精品一区二区器材
|
久久躁日日躁aaaaxxxx
|
欧美福利在线
|
日本久久黄色
|
四色成人av永久网址
|
在线观看 亚洲
|
国产精品久久久久久久久久不蜜臀
|
91av在线免费观看
|
欧美四虎
|
精品国产乱码久久久久久久久
|
国产欧美日韩一区二区三区在线观看
|
免费看一级毛片
|
欧美日韩国产精品激情在线播放
|
成人精品网
|
国产一区二区三区www
|
www..com18午夜观看
|
激情黄色在线观看
|
欧美成人精品一区二区男人看
|