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

📄 example_c.c

📁 DSP关于F240的实例程序
💻 C
字号:

#include        "f2407_c.h"
#define         pwm_half_per 20000    
void Start_SPWM(void);
void sci_init(void);
volatile int j=1,k=1,Lowbyte,Highbyte,numble=0,temp;					

void main(void)
{    

    asm (" setc INTM");
    asm (" setc SXM");
    *SCSR1 = 0x0065;
    *SCSR2 = (*SCSR2 | 0x000B) & 0x000F;
    *WDCR  = 0x00E8;
     WSGR = 0x0000;
    *MCRA = 0x0C03;                     
    *MCRB = 0xFE00;                     
    *MCRC = 0x0000;                     
    *GPTCONA = 0x0000;                 
    *T1CNT = 0x0000;                    
    *T1PR = pwm_half_per;               
    //*DBTCONA = 0x05E8;                
    *ACTRA = 0x0600;                    
    *COMCONA = 0x8200;                
    *T1CON = 0x0840;                   
    *IFR = 0xFFFF;                      
    *IMR = 0x0003;                      
    *EVAIFRA = 0xFFFF;                  
    *EVAIFRB = 0xFFFF;                  
    *EVAIFRC = 0xFFFF;                  
    *EVAIMRA = 0x0200;                  
    *EVAIMRB = 0x0000;                  
    *EVAIMRC = 0x0000;                  
    *EVBIFRA = 0xFFFF;                  
    *EVBIFRB = 0xFFFF;                  
    *EVBIFRC = 0xFFFF;                  
    *EVBIMRA = 0x0000;                  
    *EVBIMRB = 0x0000;                  
    *EVBIMRC = 0x0000;                  

    sci_init();
    Start_SPWM();
    *T1CON = 0x0840;                    
    asm( " CLRC INTM ");            
	while(1);
	
}

interrupt void t1ufint(void)
{
     
      *EVAIFRA = *EVAIFRA & 0x0200;                
	  *SCICTL2=(*SCICTL2|0x2);       /*可以不这样设置,最好用空闲线模式*/
      *CMPR3=numble;
      asm("  clrc INTM ");                   
}

interrupt void sciint(void)
{   

   if(j==1)
           
      {
         Lowbyte=*SCIRXBUF;
         j=0;
         k=0;
      }
                    
   if(k==1)
      {    
         temp= *SCIRXBUF;
         temp=(temp<<8); 
         Highbyte=temp;
         numble=Lowbyte+Highbyte;
         j=1;
         k=0;
         *SCICTL2=(*SCICTL2&0xFD);      /*可以不这样设置,最好用空闲线模式*/
          
      }
              
      k++; 
      asm("  clrc INTM ");
     
}


void Start_SPWM(void)
{
   
	*CMPR3 = 0x0000;
    *T1CNT = 0x0000;
	*T1CON = *T1CON | 0x0040;
}


void sci_init(void)
{
    (*SCICCR) =0x000F;     
    (*SCIHBAUD)=0x0000;    
    (*SCILBAUD)=0x0009;
    (*SCICTL1)=0x0001;     
    (*SCICTL2)=0x0002;
    (*SCICTL1)=0x0021; 
     
} 


⌨️ 快捷键说明

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