学习PIC心得体会(MPLAB)----使用定时器实现PWM输出

 打开MCC,在Device Resources一栏找到你要使用的定时器点击加号添加,我使用的是TMR0,使用定时器的前提是你的系统时钟必须配置正确,否则会影响定时器的频率

 勾选Enable Svnchronisation也可使能同步时钟

接下来配置引脚模式为GPIO口输出模式

在芯片引脚图中右键要使用的引脚后单击GPIO|output即可

 或者在此处配置

  最后配置引脚具体功能

关闭MCC返回代码界面,编写代码,实现定时器100ms反转RC4口的电平状态

//在中断里边使用的变量要用volatile修饰防止被优化
volatile uint32_t Time1msCnt=0;
volatile bool  flag = 0;

//中断服务函数
void timer_isr(void)
{
    Time1msCnt++;
    if(Time1msCnt >=100)
    {
        flag = !flag;
        Time1msCnt=0;
    }
}

void main(void)
{
    // initialize the device
    SYSTEM_Initialize();

    //使能定时器0中断
    TMR0_SetInterruptHandler(timer_isr);

    // 使能全局中断
    INTERRUPT_GlobalInterruptEnable();

    // 使能外设中断
    INTERRUPT_PeripheralInterruptEnable();
    
    //设置C4引脚为低电平
    LATC4 = 0;

    while (1)
    {
        if(flag == 1)
        LATC4 = 1;
        else
        LATC4 = 0;    
        //使用看门狗
        CLRWDT();
    }
}

 C4引脚接示波器查看现象

在以有波形形出现后找到Run Control栏按下Run/Stop(红色按键)(已包浆)键暂停波形

接着找到Measure栏,Cursors是手动标定测量频率,Quick Meas是快速标定测量频率

最终现象,输出5Hz(200ms)PWM,50%占空比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值