本次测评的主要内容是体验PIC18F16Q41的IOC中断以及串行通信接口UART。
开发板上的按键SW0是连接到芯片的RC0引脚,UART模块的收发引脚RB7_UART_TX,RB5_UART_RX因此在MCC中如下配置:
然后点击Generate,生成配置代码后,退出MCC,继续编写应用代码。在按键中断服务程序中,设置一个按键标志位,
/**
IOCCF0 Interrupt Service Routine
*/
void IOCCF0_ISR(void) {
// Add custom IOCCF0 code
Bool_Button_Pressed = 1;
printf("ButtonPressed - Inside ISR\r\n");
// Call the interrupt handler for the callback registered at runtime
if(IOCCF0_InterruptHandler)
{
IOCCF0_InterruptHandler();
}
IOCCFbits.IOCCF0 = 0;
}
在主程序中,要记得使能中断全局开关,在检测到按键按下后,快速闪烁
if(Bool_Button_Pressed){
//IO_RC1_myLED_SetHigh();
//DELAY_milliseconds(2000);
Bool_Button_Pressed = 0;
for(int i = 7; i >=0; i--){
IO_RC1_myLED_SetHigh();
DELAY_milliseconds(100);
IO_RC1_myLED_SetLow();
DELAY_milliseconds(100);
}
}
在测试中也发现,有时候烧录程序后需要把板子与电脑断开,然后再重新连接,才能开到效果。不知是否我哪里设置不正确?
目前的效果如下:
在串口助手上:
在板子上:
总体来说,使用MPLAB X IDE V5.5.0来开发PIC18F16Q41相当的快捷便利,自己只需要集中精力负责应用代码的编辑,外设驱动等经由MCC可以高效准确的生成,可以预见在项目中可以快速的搭建demo,展示作品创意!
|