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

📄 mainc.c

📁 一个变频器的代码,用msp430就能实现.低成本,可靠性也不错.
💻 C
字号:
  #include "def.h" 
  struct msg mymsg;
  extern struct STRWORK work;
  extern struct STRSHOW show;
  extern struct STRSA sa866ae;
// **********************************************************
 void savemsg( unsigned char msgtype, unsigned char msgcode);
 extern  void showscreen(void);
 extern void Init_ADC(void);
 extern void dealkeymsg( unsigned char nowmsg);
 extern void readBC7281(void);
 extern void iniSA866(void);
 extern void setSA866(void);
 extern void DealADC(void);
 extern void diandu(void);
extern void SetFre(unsigned int frequest);
// **********************************************************
 void delayms(int i)
{int i1,i2;
 for(i1=0;i1<i;i1++)
    for(i2=0;i2<460;i2++);
}
 void initimera(void)
{                                //USE SMCLK AS INPUT CLOCK 
   TACTL=TASSEL0+TACLR;         //enable a interrupt
   TACCTL1=OUTMOD2+OUTMOD1+OUTMOD0;
                                  //Start timer_A: up  Mode
   TACTL|=(MC0);   
   TACCR0=8000;
   TACCR1=100;                      //set toggle freq to 3 KHz//6M MCLK
    TACCTL0=CCIE;
   _EINT();
}  
void initimerb(void)                 //20hz
{
TBCCR0=15000;//20Hz
TBCCTL0=0x0610; // enable interrupt
TBCTL=0x10+0xc0+0x0100;         /* start Timer_B  */
}
//--------------------------------------------------------
void ini_vary(void)
  {
  setClkBC;
  setDatBC;
  setKeyBC;
  show.initimer=80;
  work.workstatic=STOP;
  work.errsignal=OFF;
  work.onkey=OFF;
  work.offkey=OFF;
  work.passkey=OFF;
  work.failkey=OFF;
  work.invert==OFF;
  work.pwmcount=100;
  work.stoptime=0; 
  
  show.page=0; 
  sa866ae.freset=400;
  clrOUT4;
  }
void ini_io(void) 
{
     P1DIR=0xb7;//control
     P1SEL|=0x04;
     
     P2DIR=0xF0;
      
     P4DIR=0x3F;
    
     
     P6DIR=0x00;
     P6SEL=0xc0;
} 
//----------------------------------------------------------
void inisys(void)
{
  WDTCTL = WDTPW + WDTHOLD;        // Stop watchdog timer
    BCSCTL1|=XTS;
   do//wait in loop until crystal is stable
     {
     IFG1&=~OFIFG;
     }while(OFIFG&IFG1);
   delayms(10);
                              //Reset osc. fault flag again
   IFG1&=~OFIFG;                      
                                 //Then set MCLK same as LFXT1CLK
   BCSCTL2=SELM0+SELM1;
  
    ini_vary();
    ini_io();
    initimera();
    initimerb();
    Init_ADC();
    iniSA866();
    //setSA866();
    } 
 void main(void)
    {
    inisys();
     while(1){
             dealmsg(); 	    
             }
 }

⌨️ 快捷键说明

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