📄 pwm.c
字号:
/*==========================================================================*
* File name : main.asm *
* Author: davidlee *
* Data: 2006.11.19*
* Version: 2.0 *
* Organization: DSP&EMC,National Key Laboratory of Power Electronics,
* Zhejiang University, Hangzhou 310027, China *
* Description : PROGRAM TO CONTROL A ELECTRIC CAR USE F2407A *
;============================================================================*
*/
#include "F2407_c.H" //;the header file
asm(" .word #0ffffh ");
asm(" .word #0ffffh ");
asm(" .word #0ffffh ");
asm(" .word #0ffffh ");
//屏蔽中断程序
void inline disable()
{
asm(" SETC INTM ");
}
void inline enable()
{
asm(" CLRC INTM ");
}
//=======================================================
//系统初始化子程序
//=======================================================
void system_init()//
{//
asm(" CLRC SXM " );//
asm(" SETC OVM " );//
asm(" CLRC CNF " );//
asm(" SETC INTM ");//
SCSR1=0x002C;//
WDCR=0x0E8;//
IMR=0x0001;//
IFR=0x0FFFF;//
WSGR=0x0000;//
}//
//=======================================================
//PWM初始化程序
//=======================================================
void pwminitial()
{
MCRA=0x0FFFF; //EVA模式(基本功能)
MCRB=0x0FE1C; //仿真口
MCRC=0x0003F;
PADATDIR=0x0000;
PBDATDIR=0x0000;
PCDATDIR=0x1400;
PDDATDIR=0x0000;
PEDATDIR=0x7E00;
PFDATDIR=0x7C00;
//=======================================================
//EVA&EVB的设置,T1用作全局定时器,定时周期200us,晶振20MHz
//=======================================================
EVAIMRA=0x0000;
EVAIMRB=0x0000;
EVAIMRC=0x0000;
EVAIFRA=0x0000;
EVAIFRB=0x0000;
EVAIFRC=0x0000;
GPTCONA=0x0041;
T1CON=0x1046;
T1PR=0x7CF; //定时器1周期寄存器
T1CNT=0x0; //定时器1计数器
CMPR1=0x1F4; //比较器1
CMPR2=0x3E8; //比较器2
CMPR3=0x5DC; //比较器3
COMCONA=0x0AE00; //使能比较操作
ACTRA=0x999; //PWM1~6输出控制
DBTCONA=0x0FC0; //死区设置
}
//=======================================================
//该中断服务程序主要是为了防止干扰,不作任何其他操作
//=======================================================
void interrupt nothing()
{
return;
} //中断直接返回
//=======================================================
//主程序
//=======================================================
main()
{
disable();
system_init();
enable();
pwminitial();
T1CON=T1CON|0x0040; //启动定时器1
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -