📄 simplepwmnp.c
字号:
/*****************************************************
** 功能描述: 不带故障保护输入引脚的PWM,占空比84.04%**
*****************************************************/
#include "p30f6014.h"
/*系统初始化子程序,放在程序首部*/
void InitializeSys()
{
INTCON1 = 0x0000; //关中断
INTCON2 = 0x0000;
IEC0 = 0x0000; //IECx中断禁止
IEC1 = 0x0000;
IEC2 = 0x0000;
}
/*输出比较模块初始化子程序*/
void ConfigOC8()
{
OC8CON = 0x0000; //Timer2是比较4的时钟源
T2CON = 0x0000; //预分频1,16位定时器,使用内部时钟
TMR2 = 0x0044;
OC8RS = 0x003a; //赋值OC8R值为0x003a
PR2 = 0x0044; //设置PWM周期0x0044
IFS2bits.OC8IF = 0; //清除输出比较中断标志位
IEC2bits.OC8IE = 0; //不使能输出比较4中断
IFS0bits.T2IF = 0; //清除定时器2中断标志位
IPC1bits.T2IP = 7; //设置定时器2中断优先级7
IEC0bits.T2IE = 1; //使能Timer2定时器中断
}
/*中断子程序:定时器2中断*/
void __attribute__((__interrupt__)) _T2Interrupt()
{
IFS0bits.T2IF = 0; //清除定时器2中断标志位
}
main()
{
InitializeSys();
ConfigOC8();
T2CONbits.TON = 1; //打开定时器2
OC8CONbits.OCM = 6; //OC8处于不带故障保护输入引脚的PWM模式,
//错误引脚禁止
while(1)
{
; //可编写其它程序
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -