⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.c

📁 2407的一些源代码
💻 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 + -