本帖最后由 pzsh 于 2021-9-25 08:55 编辑
一、打开MPLAB X IDE,新建工程,选择你用的型号,这里我选择的是PIC18F16Q41
创建好基本的工程文件后,启用MCC,图形化的配置如下,启用我们的LED管脚和按键SW管脚,并给他们起个好记的名字LED,SW
名词解释:interrupt-on-change (IOC),电平改变中断。
给按键的IOC设置为负极触发(低电平触发),并启用弱上拉(WPU:Weak Pull-Up )这样默认为弱上拉是正极高电平,当按下后触发了IO的变化,且低电平,
之后点Generate生成工程代码
二、完善主函数代码
#include "mcc_generated_files/mcc.h"
void led(void)
{
LED_Toggle();
}
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
IOCCF0_SetInterruptHandler(led);
// Enable the Global Interrupts
INTERRUPT_GlobalInterruptEnable();
// Disable the Global Interrupts
//INTERRUPT_GlobalInterruptDisable();
while (1)
{
}
}
其实无非就是启用全局中断,然后通过设置中断处理函数,让中断回调函数去执行我们的led翻转函数。
IOCCF0_SetInterruptHandler(led);
注意,如果烧录后,没反应,系统没立即执行新的程序,这个时候拔了开发板,重新复位上电,即可执行,之前我还以为是有什么问题,原来是因为开发板没有复位按键,系统没能正常复位。
|