久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: stc32g12k128單片機輸出PWM波例程 [打印本頁]

作者: 麗江春水    時間: 2022-9-18 08:58
標題: stc32g12k128單片機輸出PWM波例程
今天在學習stc32g12k128單片機的PWM功能時感受到了它的強悍,它能同時輸出8路不同的PWM信號,并且除了使用8個IO口外不占用其它任何系統資源,比如定時器,中斷及MCU時間。為方便初學者認識這個功用的優點,我寫了一個輸出四路PWM信號的例程,展示一下這個功能的用法,例程可以直接使用,也可以方便的放進其它程序中做為一個函數調用,該例程經采用stc32g12k128芯片的核心板降龍棍和屠龍刀驗證通過,并使用示波器和脈沖采集測量方式檢驗證實。希望對初學stc32g12k128的朋友有所幫助。下面是程序主體部分,完整內容可下載附件獲得。
更新的程序中加入了頻率范圍向下擴展的語句
單片機源程序如下:
#include <STC32G.H>
#include "mcu_initial.h"
#define sysclock 11059200
#define down_freq 20 //頻率向下擴展比例。設置值不為0的正整數。也不要太大,以免溢出。
#define PWMA_freq 220        //PWMA輸出頻率,單位HZ
#define PWMB_freq 1000//        PWMB輸出頻率
#define duty1  0.1//cc1占空比(0.01~0.999)
#define duty3  0.2//cc3占空比
#define duty5  0.3//cc5占空比
#define duty6  0.4//cc6占空比
void mcu_initial(void)
{
unsigned long int za,zb,zc;//計算常數
        P1M1=0x00;
        P1M0=0x00;   //P1配置為準雙向
        P2M1=0x00;
        P2M0=0x00;   //P2配置為準雙向
        P3M1=0x00;
        P3M0=0x00;   //P3配置為準雙向                  
                P4M1=0x00;
        P4M0=0x00;   //P4配置為準雙向                  
P5M0 = 0x00;
P5M1 = 0x00;
  EAXFR = 1; //使能訪問 XFR
CKCON = 0x00; //設置外部數據總線速度為最快
WTST = 0x00; //設置程序代碼等待參數,
//賦值為 0 可將 CPU 執行程序的速度設置為最快
za=sysclock/PWMA_freq-1;//PWMA計數器周期預設值
        zb=sysclock/PWMB_freq-1;//PWMB計數器預設值
PWMB_PSCRL=down_freq-1;//更新加入的語句。配合向下擴展頻率定義語句
         PWMA_PS=0x00;//默認值,在P1.4輸出PWMA3,在P1.0輸出PWMA1
         PWMA_CCER1 = 0x00; //關閉通道cc1
        PWMA_CCER2 = 0x00; //關閉通道cc3

PWMA_CCMR1=0x60;//設置cc1為PWM模式1輸出
PWMA_CCMR3=0x60;//設置cc3為PWM模式1輸出
PWMA_CCER1 = 0x01; //使能cc1輸出
PWMA_CCER2 = 0x01; //使能cc3

PWMA_ARRH=za/256;//PWMA周期高位
PWMA_ARRL=za%256;//PWMA周期低位

zc=za*duty1;
PWMA_CCR1H=zc/256;//PWM1P占空比高位
PWMA_CCR1L=zc%256;//PWM1P占空比低

zc=za*duty3;
PWMA_CCR3H=zc/256;//PWM3P占空比高位
PWMA_CCR3L=zc%256;//PWM3P占空比低位

PWMB_PS=0x00;//選擇在P2.0輸出PWM5.P2.1輸出PWM6
PWMB_CCER1=0x00;//寫CCMRx前必須先清零,關閉通道
PWMB_CCMR1=0X60;//設置cc5為PWM模式1輸出
PWMB_CCMR2=0X60;//設置cc6為PWM模式1輸出
PWMB_CCER1=0x11;//使能cc5通道和cc6通道

PWMB_ARRH=zb/256;//設置周期
PWMB_ARRL =zb%256;

zc=zb*duty5;
PWMB_CCR5H=zc/256;//設置占空比
PWMB_CCR5L=zc%256;

zc=zb*duty6;
PWMB_CCR6H=zc/256;//設置占空比
PWMB_CCR6L=zc%256;

PWMA_ENO=0x11;//使能PWM1P和PWM3P
PWMB_ENO = 0x05; //使能 PWM5P和PWM6 端口輸出

PWMA_BKR = 0x80; //使能主輸出
PWMB_BRK = 0x80; //使能主輸出

PWMB_CR1 = 0x01; //開始計時
PWMA_CR1=0x01;//開始計時
        //HSPWMB_CFG=0x07;//開啟高速高級PWMA模式和中斷響應
        //USBCLK|=0xc0;//使能PLL時鐘倍頻,時鐘選擇24M

}

Keil5代碼下載: Keil代碼.7z (32.62 KB, 下載次數: 89)

作者: heicad    時間: 2022-10-14 17:31
好東東 mcu_initial.h可以用您在其他工程里面的嗎?
作者: STC莊偉    時間: 2022-10-15 09:51
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序

作者: 麗江春水    時間: 2022-10-15 16:30
heicad 發表于 2022-10-14 17:31
好東東 mcu_initial.h可以用您在其他工程里面的嗎?

可以呀,只是注意其中的設置與程序中其它任務的設置不要沖突
作者: 麗江春水    時間: 2022-10-15 20:12
STC莊偉 發表于 2022-10-15 09:51
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序

我是初學者,目前只做了脈沖捕捉和頻率測量的驗證,DAC類還沒學到。
作者: 蛋進涼絕    時間: 2022-10-28 20:45
麗江春水 發表于 2022-10-15 20:12
我是初學者,目前只做了脈沖捕捉和頻率測量的驗證,DAC類還沒學到。

可否分享一下你的成果
作者: 麗江春水    時間: 2022-10-29 13:05
可以,能為大家做點事,很高興。謝謝。
作者: lirenhain00    時間: 2022-11-19 16:16
正在學習STC32,多謝了
作者: 麗江春水    時間: 2022-11-19 18:50
lirenhain00 發表于 2022-11-19 16:16
正在學習STC32,多謝了

歡迎指點,希望多些交流。
作者: 長橋臥波    時間: 2022-11-23 16:51
有個問題想問一下,如果這個PWM工作的過程中產生了外部中斷,這個PWM會不會停?
作者: 麗江春水    時間: 2022-11-24 09:29
長橋臥波 發表于 2022-11-23 16:51
有個問題想問一下,如果這個PWM工作的過程中產生了外部中斷,這個PWM會不會停?

不會停,PWM是相對獨立的外設。
作者: 小白艾世雄    時間: 2022-11-24 11:05
謝謝樓主,好資料,51黑有你更精彩!!!
作者: 長橋臥波    時間: 2022-11-30 10:17
麗江春水 發表于 2022-11-24 09:29
不會停,PWM是相對獨立的外設。

那就好,以前15系列的就會停,非常讓人困擾。
作者: 麗江春水    時間: 2022-11-30 13:29
長橋臥波 發表于 2022-11-30 10:17
那就好,以前15系列的就會停,非常讓人困擾。

15系列不該停,你再看看程序上有什么語句會讓PWM停。
作者: wangshengyuan    時間: 2023-11-16 16:53
STC莊偉 發表于 2022-10-15 09:51
STC32G12K128系列PWM的強大需要花時間消化,需要測試官方的范例程序

請問在哪可以下載呀?

作者: STC新未來    時間: 2023-11-17 09:03
wangshengyuan 發表于 2023-11-16 16:53
請問在哪可以下載呀?

您好,可去他們官方STCAI下載
作者: autumnlx2022    時間: 2023-11-18 19:17
優秀。。。。
作者: haide1998    時間: 2024-5-6 21:37
路過學習,謝謝分享!
作者: llang07    時間: 2024-6-1 03:19
路過學習,謝謝分享!




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日日舔 | 黄色片在线播放 | 成人a级片 | 日韩精品一区二区三区免费视频 | 国内精品国产成人国产三级 | 午夜看看 | 六月婷婷激情 | 中文字幕在线视频播放 | 伊人网站| 亚洲精品视频在线播放 | 美女国产精品 | 亚洲高清毛片一区二区 | 九九热视频在线 | 看一级黄色片 | 93久久精品日日躁夜夜躁欧美 | 日本公妇乱偷中文字幕 | 国内精品一区二区三区 | 久久99精品久久久久久 | 懂色av蜜臀av粉嫩av分享 | 国产福利视频在线观看 | 亚洲国产精品一区二区三区 | 久久久久久久国产 | 亚洲精品视频免费在线观看 | 爱情岛论坛av| 一区视频在线 | 亚洲一区在线播放 | 日韩精品三区 | 韩日av在线 | 日本福利视频 | 长河落日 | 欧美激情视频一区二区三区 | 亚洲国产精品suv | 中文久久久 | 日韩性视频 | 亚洲精品乱码久久久久久动漫 | 狠狠se| 成人免费看片98欧美 | 午夜激情视频 | 在线免费看黄网站 | 亚洲黄视频 | 91久久久久久久久久久 |