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

📄 initsystem.c

📁 基于TMS320LF2407的一个倒立控制程序
💻 C
字号:
#include "Regs240x.h"
#include "ClearDog.h"

void Initsystem()    /*	system initialization */
{  
    int n;    
  	asm(" SETC INTM " );    /*Disable interrupts */
  	asm(" CLRC SXM "); 	    /*Reset Sign Extension Mode*/
  	asm(" CLRC OVM ");      /*Reset Overflow Mode  */
  	asm(" CLRC CNF ");      /*Config Block B0 to Data memory.*/
  	
  	/* * SCSR1=0x02CD;         /* PLL x2,CPUCLK=2*CLKIN,Enable ADC,SCI and EV*/
    * SCSR1=0x00CD;         /* PLL x2,CPUCLK=4*CLKIN,Enable ADC,SCI and EV*/
 
    * IMR = 0x00;             /**Mask all INTs **/ 	           
  	* IFR = 0x0FF;            /*clear all the int flags */   

     /* Watchdog*/
   	 * WDCR=0x002F;             /*Enalbe Watchdog,prescaler=64*/   	
   	 ClearDog();

	   /*I/O*/
	* MCRA=0x6FFF;        /*use IOPB4 IOPB7 as I/O port*/         
   	* MCRB=0x0FFFF;  
   	* MCRC=0x0FFFF;   
   	* PBDATDIR=0x7FFF;     /*IOPB7:input:H;IOPB4:output:H */	
   	
   	  /*ADC*/
   	* MAXCONV=0x0;           /* Convert num=1 */
   	* CHSELSEQ1=0x0000;   
    * CHSELSEQ2=0x0000;
    * CHSELSEQ3=0x0000;
    * CHSELSEQ4=0x0000; 

    * ADCTRL1=0x2F19;        /* 级连、启停模式,使能校准 */ 
    * ADCTRL2=0x4000;        /*,Start calibrate or 0x2000*/
    
    for(n=200;n>0;n--)    /* wait for ADC calibrate*/
       asm("NOP");
      
    * ADCTRL1=0x2F10;      
    * ADCTRL2=0x4000;       
    
	   /*	SCI	BaudRate 38400*/    
	* SCICCR = 0x07;     /*forbid calibrate,odle mode,8bit data */
	* SCICTL1 = 0x13; 
	* SCICTL2 = 0x02;      /*Enable RX interrupt*/
	* SCIHBAUD = 0x00;   /* BaudRate 38400 */
	* SCILBAUD = 0x81;    /*0x81:40MHz,0x40:20MHz*/
	* SCIPRI = 0x10;     /********************/
	* SCICTL1 = 0x33;   /*Enable SCI,Forbid SLEEP,enalbe TX and RX*/		
  
	   /*	Pwm  10kHz	*/
    * T1PR = (int)(1000);
    * ACTRA = 0x01;    /*PWM1=0 =>PWM=1,=>BREAK=H */
    * CMPR1 = (int)1000;	    
    * COMCONA = 0x0CB00;  /* Enable Compare */
    * T1CNT = 10;
    /** T1CON = 0x8840; /*20MHz,prescaler=1 */
    * T1CON = 0x8C40; /*40MHz, prescaler=2 */
	
	/** Timer 10ms **/
   	/* * T3PR = (unsigned int)(12500);  /**20MHz:12500**/
   	* T3PR = (unsigned int)(25000);  /**40MHz:25000**/
    * T3CNT = 0;
    * T3CON= 0x1440;  /*Continuous up mode,prescaler=16 */
 
	  /*	GPT	*/
	 * GPTCONA = 0x0;
	 * GPTCONB = 0x0;   
	
	  /*	EVINT	*/  	  
	 * EVAIMRA=0x0000;            
     * EVAIMRB=0x0000;             
     * EVAIMRC=0x0000;
     
     * EVBIFRA=0x00FF;  /* Clear  */
     
     * EVBIMRA=0x0080; /*Enable Timer3 period interrupt*/
     * EVBIMRB=0x0000;
     * EVBIMRC=0x0000; 
}           

⌨️ 快捷键说明

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