找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1682|回复: 1
打印 上一主题 下一主题
收起左侧

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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1042619 发表于 2022-12-22 11:37 | 只看该作者
    感谢楼主精彩分享!也可以参考STC32G12K128实验箱范例程序第80个(高级PWM输出-周期可调、脉冲计数),需要样品等支持请联系我



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表