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

📄 main.c

📁 这是本人基于dsp编写的利用各种方法产生PWM,看了这些程序
💻 C
字号:
/*Main.c*/ 
#include "global.c"

void PWM_Init() ; 
void KickDog();
void SystemInit();

unsigned int numled0=2500;   
unsigned int XPWM=100;  

main()
{  
   SystemInit();         	         //系统初始化   
   MCRA=MCRA & 0xC0FF; 	          //IOPB0-6设为IO口模式
   PBDATDIR=0xF3C2;   	         //所有LED=0 
   PBDATDIR=PBDATDIR |0x003D;   //所有LED=1     
   PWM_Init() ;               //定时器初始化    
   asm(" CLRC INTM ");      //中断使能
   while(1);
   
} 

void SystemInit() 
{  
    asm(" SETC	INTM ");	  /* 关闭总中断 */
    asm(" CLRC  SXM  ");	  /* 禁止符号位扩展 */ 
    asm(" CLRC  CNF  ");    /* B0块映射为 on-chip DARAM*/
    asm(" CLRC  OVM  ");    /* 累加器结果正常溢出*/
    SCSR1=0x83FE;         	/* 系统时钟CLKOUT=20*0.5=10M */
                            /* 打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟CLKOUT=40M */
    WDCR=0x006F;			      /* 禁止看门狗,看门狗时钟64分频 */ 
    KickDog();    			    /* 初始化看门狗 */  
    IFR=0xFFFF;				      /* 清除中断标志 */
    IMR=0x0002;				      /* 打开中断2*/  
}  


void PWM_Init()           
{ 
    MCRA=MCRA | 0x00C0;		    //PA6-PA7为PWM口
    EVAIFRA=0xFFFF;			     //  清除中断标志 
    ACTRA=0x0006;           //PWM1,2低有效    
    DBTCONA=0x0000;			   //不使能死区 
    T1PR=400;				      //定时器1周期值,定时0.1us*400=40us   
    CMPR1=XPWM;          //比较值
    COMCONA=0xA600;     //比较控制寄存器
    T1CNT=0; 	
    EVAIMRA=0x0080;		//定时器1周期中断使能  
    T1CON=0x104E;    //增模式, TPS系数10M,T1使能,  
}  

/*定时器1中断服务程序*/
void c_int2()              
{
    if(PIVR!=0x27)
		{  	asm(" CLRC INTM ");
        	return;
		}
   
    numled0--;
    if(numled0==0)
    {   numled0=2500;
		if((PBDATDIR & 0x0001)==0x0001) 
			PBDATDIR=PBDATDIR & 0xFFFE;    	//IOPB0=0;LED灭  
		else
			PBDATDIR=PBDATDIR |0x0101;     //IOPB0=1;LED亮 
    } 
     
    T1CNT=0; 
    //XPWM=200;
    //CMPR1=XPWM; 
    EVAIFRA=0x80;    
    asm(" CLRC	INTM ");
}  

/*踢除看门狗 */
void KickDog()				
{
    WDKEY=0x5555;
    WDKEY=0xAAAA;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -