#include "f2407_c.h"
void disable()
{
asm(" setc INTM "); //禁止可屏蔽中断
}
void inini()
{
asm(" setc SXM "); //要做符号扩展
asm(" clrc OVM "); //累加器中的结果正常溢出
asm(" clrc CNF "); //片上DARAM作为数据储存器
*SCSR1=0X83FE; //2倍频 P166
*WDCR=0X0E8; //关闭看门狗 P176
*IMR=0X0; //P184 禁止所有中断
*IFR=0XFFFF; //写1清0
WSGR=0X0; //等待周期都为0
}
void pwminit()
{
*MCRA=*MCRA|0X03C0; //P199 PWM1 2 3 4为基本功能
*ACTRA=0X0066; //P243 PWM1 4输出低有效 PWM2 3高有效
*DBTCONA=0X960; //P246 9个死区CLK
*CMPR1=20;
*CMPR2=20; ///////////////// 占空比1
*T1PR=40; ////////////////// 1M的频率 实际计数周期为41 因为从0开始计
*COMCONA=0X8200; //P243
*T1CON=0X1000; //P230 f,MOD
}
void interrupt nothing()
{
return ;
}
void main()
{
disable();
inini();
pwminit();
*T1CON=*T1CON|0X40; //启动
while(1);
}
|