本帖最后由 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开始挤眼了。
|