📄 pwm.c
字号:
/*****************************************
本程序使用2407的pwm模块实现多路输出pwm波形
******************************************/
#include "register.h"
initial()
{
asm(" setc INTM ");
asm(" setc SXM ");
asm(" clrc OVM ");
asm(" clrc CNF ");
*SCSR1=0X82FE; //CLKIN=10M,CLKOUT=4*CLKIN=40M
*WDCR=0X0E8;
*IMR=0X0000;
*IFR=0X0FFFF;
WSGR=0X00; //禁止所有等待状态
}
int initialpwm()
{
*MCRA=*MCRA|0X0CC0; //初始化IO口
*ACTRA=*ACTRA|0X0606;//PWM1,5高位有效,PWM2,6低位有效
*DBTCONA=0X0000;//不使能死区
*CMPR1=0X3A98; //(1-1/4)*20000=15000,占空比为1/4
*CMPR3=0x2710; //(1-1/2)*20000=10000,占空比为1/2
*T1PER=0X4E20; /*设置Timer1的周期寄存器值,定时器周期为2*20000/CLKOUT=1ms
对称输出方式*/
*COMCONA=0x8200; //使能pwm
*T1CON=0X0800; //定时器为连续增减计数模式
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -