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

📄 real_time.h

📁 基于TMS320LF2407的LED大屏幕显示程序
💻 H
字号:
#ifndef  _REAL_TIME
#define  _REAL_TIME   

#include "dsp_flash.h"

int real_time_init(){
    
    int a;
    BYTE f_temp;
    chg_speed(7);    
    f_temp=g_flag;
    g_flag=g_flag|0x03;
    g_flag=g_flag&0xF3;
    selectchip(g_flag);
    
    WSGR2=0x0c; ///C
    a=WSGR1; 
     
    WSGR2=0x0a; 
    WSGR1=0x70;
    WSGR2=0x0b; 
    WSGR1=0x86;
    
    WSGR2=0x01; 
    WSGR1=0xff;
    WSGR2=0x03; 
    WSGR1=0xff;
    WSGR2=0x05; 
    WSGR1=0xff;
        
    WSGR2=0x0a; ///A
    WSGR1=0x20;
    WSGR2=0x0b; ///B
    WSGR1=0x66;   
    
    selectchip(f_temp);
    
    chg_speed(0); 
    return 1;

}

int set_time(volatile unsigned char *p){
    
    int i;
    unsigned  addr;
    unsigned  data_temp;
    BYTE f_temp;
    
    //chg_speed(7);
    
    f_temp=g_flag;
    g_flag=g_flag|0x03;
    g_flag=g_flag&0xF3;
    selectchip(g_flag);
    
    WSGR2=0x0b;        
    WSGR1=0x84;       
    
    for(addr=0;addr<10;addr++){       
       if((addr>5)|((addr%2==0)&&(addr<5))){
          WSGR2=addr;
          i=*(p+addr);        
          WSGR1=i;//i;                 
        }
       else{
           WSGR2=addr;
           WSGR1=0xFF;
       }   
    } 
    WSGR2=0x0b;        
    WSGR1=0x66; 
                         
    selectchip(f_temp);
    
    chg_speed(0);
    
    return 1;

}


int read_time(volatile unsigned char *p){
    int i;
    unsigned  addr;
    unsigned  data_temp;
    BYTE f_temp;
    
    //chg_speed(7);
    
    f_temp=g_flag;
    g_flag=g_flag|0x03;
    g_flag=g_flag&0xF3;
    selectchip(g_flag);
    
    WSGR2=0x0C;              
    data_temp=WSGR1; 
    
    for(i=0;i<0x1000;i++){
       WSGR2=0x0a;              
       data_temp=WSGR1;
       if(!(data_temp&0x0080))
          break;          
    }
    
    if(i>=0x10000){
        selectchip(f_temp);
        return 0;
      }
    for(addr=0;addr<10;addr++){      
       WSGR2=addr;              
       data_temp=WSGR1;       
       *(p+addr)=(BYTE)data_temp;
       *(p+addr)=(*(p+addr))&0xff;           
     }
    
    if((*(p+6))>=7){
       *(p+6)=(*(p+6))%7;
       set_time(p);
     } 
                             
    selectchip(f_temp);
    
    chg_speed(0);
    
    return 1;

}   



int regulate_time(volatile unsigned char *p){
   
    if((*(p+3))==0xff)
      return 0;
    pTime[9]=*(p+3);
    pTime[8]=*(p+4);
    pTime[7]=*(p+5);
    pTime[4]=*(p+6);
    pTime[2]=*(p+7);
    pTime[0]=*(p+8);
    pTime[6]=*(p+9);
    
    set_time(pTime);
    
    return 1;

}

int compare_time(volatile unsigned char *p1){
   BYTE temp;    
   int i;
   BYTE flag_temp;
   
   flag_temp=g_flag;
   g_flag=g_flag|0x08;
   selectchip(g_flag);
   
   
   for(i=0;i<10;i++){
     pTime[i]=pTime[i]&0xff;
     p1[i]=p1[i]&0xff;
   }
   
   if((*p1)==0xff){
      g_flag=flag_temp;
      selectchip(g_flag);
      return 1;
   }
   if((*(p1+1))==0xff)
      return 1;          
   if((*p1)>=(*(p1+1))){
      temp=pTime[4]*6+pTime[2]/10;
      temp=temp&0xff;
      if((temp<(*p1))&&(temp>=(*(p1+1)))){
         g_flag=flag_temp;
         selectchip(g_flag);
         return 0;
      }
      else{
         g_flag=flag_temp;
         selectchip(g_flag);
         return 1;      
      }
   }
   else{
      temp=pTime[4]*10+pTime[2]/10;
      temp=temp&0xff;
      if((temp<(*p1))||(temp>=(*(p1+1)))){
         g_flag=flag_temp;
         selectchip(g_flag);
         return 0;   
        }
       else{
         g_flag=flag_temp;
         selectchip(g_flag);
         return 1;
       }
   }
      

}

#endif   

⌨️ 快捷键说明

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