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

【CuriosityNano测评报告】:通过MCC编写一个简单的呼吸灯

[复制链接]
2441|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 gaoyang9992006 于 2021-9-12 19:34 编辑

假设你已经安装好了开发环境,并安装了MCC图形化代码配置工具。我们要实现呼吸灯最好的方式就是通过PWM,然后选定好我们输出PWM的管脚,然后定时的修改输出占空比,即可完成呼吸灯的功能。
我们要启用的配置资源如下,启用延时函数和PWM1



如果时钟需要修改可通过System module配置,这里我选择默认
然后在Pin module选择要输出的管脚,比如我选RC1

然后按下生成代码按钮Generate
我们回到工程浏览功能,我们需要的函数,MCC已经自动按照刚才的设置给我们做好了。

这个时候只需要完善main.c中的功能即可
#include "mcc_generated_files/mcc.h"

/*
                         Main application
*/
void main(void)
{
    // Initialize the device
    SYSTEM_Initialize();
    uint16_t i=0;
    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
    // Use the following macros to:

    // Enable the Global Interrupts
    //INTERRUPT_GlobalInterruptEnable();

    // Disable the Global Interrupts
    //INTERRUPT_GlobalInterruptDisable();
PWM1_16BIT_WritePeriodRegister(2000);
PWM1_16BIT_LoadBufferRegisters();
    while (1)
    {
        for(i=0;i<2000;i++)
        {
            PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
            PWM1_16BIT_LoadBufferRegisters();
            DELAY_milliseconds(1);            
        }
        for(i=2000;i>0;i--)
        {
            PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
            PWM1_16BIT_LoadBufferRegisters();
            DELAY_milliseconds(1);            
        }
      
    }
}
编译烧录,我们就可以看到开发板上的LED开始挤眼了。

使用特权

评论回复
沙发
xuanhuanzi| | 2021-9-10 11:37 | 只看该作者
好像PIC单片机没有库函数,如果不用MCC只能学寄存器开发。是吧?

使用特权

评论回复
板凳
wooda| | 2021-9-10 12:14 | 只看该作者
xuanhuanzi 发表于 2021-9-10 11:37
好像PIC单片机没有库函数,如果不用MCC只能学寄存器开发。是吧?

有库函数的,
不用MCC只能学寄存器开发----这个描述无法评价对错。。。
哪个芯片的库函数能完成类似串口初始化这样的工作?

使用特权

评论回复
地板
xuanhuanzi| | 2021-9-10 16:09 | 只看该作者
wooda 发表于 2021-9-10 12:14
有库函数的,
不用MCC只能学寄存器开发----这个描述无法评价对错。。。
哪个芯片的库函数能完成类似串口 ...

求分享一份PIC单片机的官方库函数。真不知道去哪儿下载。

使用特权

评论回复
评论
gaoyang9992006 2021-9-15 14:46 回复TA
@wooda :这个里面没有类似HAL或者BSP那种库函数,这里面是C语言的库函数stdlib.h里面的解释。 
wooda 2021-9-13 17:54 回复TA
x:\Program Files (x86)\Microchip\xc8\v1.xx\docs 
5
pzsh| | 2021-9-10 20:54 | 只看该作者
使用MCC可以简化数据手册的寄存器操作了

使用特权

评论回复
6
gaoyang9992006|  楼主 | 2021-9-10 20:55 | 只看该作者
pzsh 发表于 2021-9-10 20:54
使用MCC可以简化数据手册的寄存器操作了

是的,甚至在不阅读手册的情况下,就可以实现开发工作。

使用特权

评论回复
7
598330983| | 2021-9-14 22:30 | 只看该作者
wooda 发表于 2021-9-10 12:14
有库函数的,
不用MCC只能学寄存器开发----这个描述无法评价对错。。。
哪个芯片的库函数能完成类似串口 ...

如果有的话,请分享出来看看啊。

使用特权

评论回复
评论
wooda 2021-9-15 08:12 回复TA
分享了,你看不见我也没办法 
8
daichaodai| | 2021-9-15 07:45 | 只看该作者
开发模式还比较简单

使用特权

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

本版积分规则

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

1896

主题

15631

帖子

198

粉丝