欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC32G單片機PWM測脈沖周期源代碼 [打印本頁]

作者: billliu66    時間: 2022-12-20 13:31
標題: STC32G單片機PWM測脈沖周期源代碼
我驗證了一下用STC32G PWM測試脈沖周期,源代碼如下:
/*main.c
  Designed by Bill Liu
  Version 0.0
  Modified last by Bill Liu , 12/20/2022
*/

#include "main.h"
#include "STC32G_Delay.h"

ui8 str[20] = {0};
ui32 nPusle = 0;

ui16 tem1, tem2;
ui16 capold;
ui16 capnew;

void PWMA_ISR() interrupt 26
{
        if(PWMA_SR1 & 0x02)
        {
                capold = capnew;
                capnew =PWMA_CCR1H;
                capnew = (capnew << 8) + PWMA_CCR1L;
                nPusle = capnew - capold;
                PWMA_SR1 &= ~0x02;
        }
}

void main()
{
        SysInit();
        Uart1_Init(VBAUD_8BITS,G1, 0, 9600);
        STC32G_P3MODE_BIIO(PIN5);
        T0ClkOutInit(3000);
        TR0 = 1;
        
        P0M1 = 0x00;
        P0M0 = 0x00;
        P1M1 = 0x00;
        P1M0 = 0x00;
        
        PWMA_ENO = 0x00;
        PWMA_PS = 0x00;
        PWMA_CCMR1 = 0x01;
        PWMA_SMCR = 0x56;
        PWMA_CCER1 = 0x01;
        
        //PWMA_IER = 0x02;
        PWMA_CR1 = 0x00;
        PWMA_CR1 |= 0x01;
        //EA =1;
        
        while(!(PWMA_SR1 & 0x02));
        tem1 = PWMA_CCR1H;
        tem1 <<=        8;
        tem1 += PWMA_CCR1L;
        PWMA_SR1 &=  ~0x02;
        while(!(PWMA_SR1 & 0x02));                             tem2 = PWMA_CCR1H;
        tem2 <<=        8;
        tem2 += PWMA_CCR1L;
        PWMA_SR1 &=  ~0x02;
        nPusle = tem2 -tem1;
        
        while(1)
        {
                LongToString(nPusle,str);        
                Uart1_SendString(str);
                Uart1_SendString("\r\n");
                Delayxms(1000);
        }
}
//End of main()

在出口助手上看到的結果如下(單片機的試鐘周期為30MHz):

1.png (7.88 KB, 下載次數: 70)

1.png

作者: 大漠孤煙001    時間: 2022-12-22 11:37
    感謝樓主精彩分享!也可以參考STC32G12K128實驗箱范例程序第80個(高級PWM輸出-周期可調、脈沖計數),需要樣品等支持請聯系我








歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1