[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】:通过MCC编写一个简单的呼吸灯

[复制链接]
 楼主| gaoyang9992006 发表于 2021-9-9 23:58 | 显示全部楼层 |阅读模式
本帖最后由 gaoyang9992006 于 2021-9-12 19:34 编辑

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



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

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

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

  2. /*
  3.                          Main application
  4. */
  5. void main(void)
  6. {
  7.     // Initialize the device
  8.     SYSTEM_Initialize();
  9.     uint16_t i=0;
  10.     // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
  11.     // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global Interrupts
  12.     // Use the following macros to:

  13.     // Enable the Global Interrupts
  14.     //INTERRUPT_GlobalInterruptEnable();

  15.     // Disable the Global Interrupts
  16.     //INTERRUPT_GlobalInterruptDisable();
  17. PWM1_16BIT_WritePeriodRegister(2000);
  18. PWM1_16BIT_LoadBufferRegisters();
  19.     while (1)
  20.     {
  21.         for(i=0;i<2000;i++)
  22.         {
  23.             PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
  24.             PWM1_16BIT_LoadBufferRegisters();
  25.             DELAY_milliseconds(1);            
  26.         }
  27.         for(i=2000;i>0;i--)
  28.         {
  29.             PWM1_16BIT_SetSlice1Output1DutyCycleRegister(i);
  30.             PWM1_16BIT_LoadBufferRegisters();
  31.             DELAY_milliseconds(1);            
  32.         }
  33.       
  34.     }
  35. }
编译烧录,我们就可以看到开发板上的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单片机的官方库函数。真不知道去哪儿下载。

评论

[url=home.php?mod=space&uid=23746]@wooda[/url] :这个里面没有类似HAL或者BSP那种库函数,这里面是C语言的库函数stdlib.h里面的解释。  发表于 2021-9-15 14:46
x:\Program Files (x86)\Microchip\xc8\v1.xx\docs  发表于 2021-9-13 17:54
pzsh 发表于 2021-9-10 20:54 | 显示全部楼层
使用MCC可以简化数据手册的寄存器操作了
 楼主| gaoyang9992006 发表于 2021-9-10 20:55 | 显示全部楼层
pzsh 发表于 2021-9-10 20:54
使用MCC可以简化数据手册的寄存器操作了

是的,甚至在不阅读手册的情况下,就可以实现开发工作。
598330983 发表于 2021-9-14 22:30 | 显示全部楼层
wooda 发表于 2021-9-10 12:14
有库函数的,
不用MCC只能学寄存器开发----这个描述无法评价对错。。。
哪个芯片的库函数能完成类似串口 ...

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

评论

分享了,你看不见我也没办法  发表于 2021-9-15 08:12
daichaodai 发表于 2021-9-15 07:45 来自手机 | 显示全部楼层
开发模式还比较简单
643757107 发表于 2025-3-26 10:17 | 显示全部楼层
用这个PIC开发PWM应用非常方便啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16351

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2046

主题

16351

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部