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

📄 general.h

📁 基于DSP芯片TMS320LF2407的高速公路室外显示屏驱动程序
💻 H
字号:

void init_sys(){ 
   asm(" setc INTM");
   ///////disable watch-dog timer 
   
   ///////////////////////////////     
   *IMR=0x00;
   *WDCR=0xE8;  
   *MCRA=(*MCRA)&0x0ff; 
   *PBDATDIR=0x7F00;
}  

 
BYTE g_flag=0;
  
  
void my_delay(long k){
 long i,j;
 int kk;
 for(i=0;i<k;i++) 
   for(j=0;j<100;j++) {
       kk=1;              
     }

}

void chg_speed(int k){
   unsigned int  temp;
   
   temp=*SCSR1;
   
   k=(k<<9);
   k=k&0x0E00;
   temp=temp&0xF1FF;
   temp=temp|k;
   *SCSR1=temp;
}

  
void selectchip(BYTE a){
    unsigned int kk,aa,bb;
   ////////PB4 
    aa=(*PBDATDIR)&0x0010;
    bb=(a&0x10);
    
    ////////PB4                      
    g_flag=g_flag&0xC0; 
    a=a&0x3f;
    g_flag=g_flag+a;
    kk=0x7F00+g_flag;
    
    *PBDATDIR =kk;
  
    while(aa!=bb){
      aa=(*PBDATDIR)&0x0010;
    }; 
     
}
    
    
void change_gray(int a){
     volatile unsigned int *pdata=(volatile unsigned int*)  0x8000; 
     BYTE temp;
     
     temp=g_flag;
     g_flag=g_flag&0x30;
     g_flag=g_flag+0x43;
     selectchip(g_flag);
     *(pdata+1)=a;
     *(pdata+1)=a;
     g_flag=temp;
     selectchip(g_flag);
}

void  time_change_gray(int a){
      if((a>=19)||(a<5))
         change_gray(7);
      else if((a>=17)||(a<7))
         change_gray(11);        
      else 
         change_gray(15);
     

}
////////////////
void my_strcopy(volatile unsigned char *p1,volatile unsigned char *p2,int len){
     int i;
     if(len<=0){
         do{     
            *(p1+i)=*(p2+i);
            i++;
           }while((*(p2+i))!='\0');
       }
     else{
         for(i=0;i<len;i++)
             *(p1+i)=*(p2+i);
       }
}


///////////////////
int calc_X(volatile unsigned char *p){
    int x;
    x=((*(p+1))&0x0F)*10+((*(p+2))&0x0F);
    return x;
}
int calc_Y(volatile unsigned char *p){
    int y;
    y=((*(p+3))&0x0F)*10+((*(p+4))&0x0F);
    return y;
}
////////////////
int calc_color(volatile unsigned char *p){
    int c;
    c=(*p)&0x0F;
    return c;
} 

int calc_font(volatile unsigned char *p){
    int a,t,f;
    
    t=(*p)&0x0f;
    if(t==0)
       return 0;
       
    t=(*p)&0x30;
    t=t>>4;
    if(t==3)
       t=0;
    else
       t=4;
    
    a=(*(p+1))&0xf0;
    if(a>0x35) 
       f=2;
    else 
       f=0;
    
    a=(*(p+2))&0xf0;
    if(a>0x35) 
       f=f+1;
    else 
       f=f+0;
    
    f=f+t;
    
    return f;
}
int calc_wide(volatile unsigned char *p){
    int t,w;
    
    t=(*p)&0x0f;
    if(t==0)
       return 6;
    t=(*p)&0x30;
    t=t>>4;
    if(t==3)
        w=6;
    else{
        if(t==2)
           w=4;
        else {
           if(t==0)
              w=3;
           else
              w=0;
        }       
    }     
    
    if(calc_X(p)==3)
       w=(w+1)/2;
           
    return w;
}

⌨️ 快捷键说明

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