打开MCC,在Device Resources一栏找到你要使用的定时器点击加号添加,我使用的是TMR0,使用定时器的前提是你的系统时钟必须配置正确,否则会影响定时器的频率
勾选Enable Svnchronisation也可使能同步时钟
接下来配置引脚模式为GPIO口输出模式
在芯片引脚图中右键要使用的引脚后单击GPIO|output即可
或者在此处配置
最后配置引脚具体功能
关闭MCC返回代码界面,编写代码,实现定时器100ms反转RC4口的电平状态
//在中断里边使用的变量要用volatile修饰防止被优化 volatile uint32_t Time1msCnt=0; volatile bool flag = 0; //中断服务函数 void timer_isr(void) { Time1msCnt++; if(Time1msCnt >=100) { flag = !flag; Time1msCnt=0; } } void main(void) { // initialize the device SYSTEM_Initialize(); //使能定时器0中断 TMR0_SetInterruptHandler(timer_isr); // 使能全局中断 INTERRUPT_GlobalInterruptEnable(); // 使能外设中断 INTERRUPT_PeripheralInterruptEnable(); //设置C4引脚为低电平 LATC4 = 0; while (1) { if(flag == 1) LATC4 = 1; else LATC4 = 0; //使用看门狗 CLRWDT(); } }
C4引脚接示波器查看现象
在以有波形形出现后找到Run Control栏按下Run/Stop(红色按键)(已包浆)键暂停波形
接着找到Measure栏,Cursors是手动标定测量频率,Quick Meas是快速标定测量频率
最终现象,输出5Hz(200ms)PWM,50%占空比