📄 pwm.c
字号:
/********************************************
本程序使用2407的pwm单元产生非对称的pwm波形,
用来测试所有的PWM输出。
*********************************************/
#include "register.h"
initial()
{
asm(" setc INTM ");
asm(" setc SXM ");
asm(" clrc OVM ");
asm(" clrc CNF ");
*SCSR1=0X81FE; //CLKIN=10M,CLKOUT=4*CLKIN=40M
*WDCR=0X0E8;
*IMR=0X0000;
*IFR=0X0FFFF;
WSGR=0X00; //禁止所有等待状态
}
int initialpwm()
{
*MCRA=*MCRA|0X0FFF; //初始化IO口
*MCRC=*MCRC|0X0FFF; //初始化IO口
*ACTRA=*ACTRA|0X0AAA;//PWM1-6位高有效
*ACTRB=*ACTRB|0X0999;//PWM7-12位高有效
*DBTCONA=0X0000;//不使能死区
*DBTCONB=0X0000;
*CMPR1=0X3E8; //(1-d)*4000
*CMPR2=0X3E8; //(1-d)*4000
*CMPR3=0X3E8; //(1-d)*4000
*CMPR4=0XFA0; //(1-d)*4000
*CMPR5=0X000; //(1-d)*4000
*CMPR6=0X3E8; //(1-d)*4000
*T1PER=0XFA0; //设置Timer1的周期值,4000/CLKOUT=0.1ms,
//占空比d为3/4
*T3PER=0XFA0;
*COMCONA=0x8200;
*COMCONB=0x8200;
*T1CON=0X1000;
*T3CON=0X1000;
}
void interrupt nothing()
{
return;
}
main()
{
initial();
initialpwm();
*T1CON=*T1CON|0X0040;
*T3CON=*T3CON|0X0040;
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -