打印
[PIC®/AVR®/dsPIC®产品]

CuriosityNano测评报告】+呼吸灯

[复制链接]
863|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaoyang9992006|  楼主 | 2020-11-8 22:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
创建新的工程,进入MCC设置,将板子上的RF3设置为PWM11输出功能。生成代码,然后进入到pwm1_16bit.c文件,查看生成的可用函数。
根据名字我们就可以确定一些函数的意义。
void PWM1_16BIT_WritePeriodRegister(uint16_t periodCount)
{
    PWM1PRL = (uint8_t)periodCount;
    PWM1PRH = (uint8_t)(periodCount >> 8);
}

void PWM1_16BIT_SetSlice1Output1DutyCycleRegister(uint16_t registerValue)
{   
    PWM1S1P1L = (uint8_t)(registerValue);
    PWM1S1P1H = (uint8_t)(registerValue >> 8);
}

void PWM1_16BIT_SetSlice1Output2DutyCycleRegister(uint16_t registerValue)
{        
    PWM1S1P2L = (uint8_t)(registerValue);
    PWM1S1P2H = (uint8_t)(registerValue >> 8);
}

void PWM1_16BIT_LoadBufferRegisters(void)
{
    //Load the period and duty cycle registers on the next period event
    PWM1CONbits.LD = 1;
}
这几个函数分别是:周期设置,设置输出1的工作时间,设置输出2的工作时间,在下一个周期加载新的周期与工作时间
因此如果我们初始化配置为固定的1KHz,那么这里我们只需要更改工作时间,并加载到下次周期就行了。例如我们在主函数添加如下内容
  unsigned int i=0;
    while (1)
    {
        // Add your application code
        for(i=1;i<1000;i++)
        {
        PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
         PWM1_16BIT_LoadBufferRegisters;
        _delay(200);
               
        }

        for(i=1000;i>0;i--)
        {
        PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
       PWM1_16BIT_LoadBufferRegisters();
       _delay(200);
        }
        
    }
烧录后,就可以看到开发板上的LED慢慢变亮,又慢慢熄灭了。
建议官方直接提供生成占空比的函数,另外对周期设置与工作时间设置的函数注释提个小建议。
因为是要设置2个寄存器,而注释只说明了一个寄存器的大小,这样不容易理解,建议两个合并后说明
例如设置PWM周期的初始化:
    //PWMPRL 231;
    PWM1PRL = 0xE7;

    //PWMPRH 3;
    PWM1PRH = 0x03;

以上内容是设置周期为0x3E7+1,也就是999+1,
而分开注释是什么意思,难以看懂啊。
不如直接注释一条啊
    //PWMPR   999;
    PWM1PRL = 0xE7;
    PWM1PRH = 0x03;

使用特权

评论回复
沙发
gaoyang9992006|  楼主 | 2020-11-8 22:22 | 只看该作者
其他厂家的BSP库函数,都提供的有百分比制的占空比设置,建议提供该函数,这样方便很多的。

使用特权

评论回复
板凳
gejigeji521| | 2020-11-9 10:25 | 只看该作者
我觉得提供一套库函数就好了。

使用特权

评论回复
地板
小灵通2018| | 2020-11-9 12:01 | 只看该作者
总结的很好,三个函数,搞定一切啊。

使用特权

评论回复
5
xuanhuanzi| | 2020-11-9 12:02 | 只看该作者
如果提供库函数,配置的都是库函数对应的,就爽歪歪了。

使用特权

评论回复
6
玛尼玛尼哄| | 2020-11-9 19:35 | 只看该作者
总是能说到点子上。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1909

主题

15687

帖子

204

粉丝