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

📄 process.c

📁 本软件为tft型液晶显示器的驱动程序 可用于车载主机显示屏等
💻 C
📖 第 1 页 / 共 2 页
字号:
       case KEYVOLINC: //UP 
                      KeyVolInc_Process();
                      break;
       case KEYVOLDEC://DOWN
                      KeyVolDec_Process();         
                      break;
       case KEYPREV:  //LEFT
                      KeyPrev_Process();
                      break;
       case KEYNEXT:  //RIGHT
                      KeyNext_Process();
                      break;
       default:break;
      }
    }
   else
      SendDataToBus(CMD_KEY,KeyPrevious,KeyLongFlagVal);//SendKeyToBus(); 
   if(KeyPrevious==KEYPOWER)
      KeyPrevious=NOKEY;
}

void Remo_Process(void)
{
   Send_Char(RedCmd);
   if(!ConnectVal)//if not connect mainboard
   {
     if((RedCmd!=REMOPOWER)&&(!PowVal))//如果没有开机,按下的不是power则返回
        return;
        
     switch(RedCmd)
      {
       case REMOPOWER: 
                      KeyPower_Process();
                      break;
       case REMOSET:  
                      KeySet_Process();
                      break;
       case REMOUP:   //UP 
                      KeyVolInc_Process();
                      break;
       case REMODOWN://DOWN
                      KeyVolDec_Process();         
                      break;
       case REMOLEFT:  //LEFT
                      KeyPrev_Process();
                      break;
       case REMORIGHT:  //RIGHT
                      KeyNext_Process();
                      break;
       default:break;
      }
    }
   else
      SendDataToBus(CMD_REMO,RedCmd,RedLong);//SendKeyToBus(); 
}

void ConnectCheck(void)
{
   IEBus_TBroadcast=0x00;
   IEBus_THAddr=0x1FF>>4;
   IEBus_TLAddr=(uchar)(0x1FF<<4);   
   IEBus_TLength=2;
   IEBus_TData0=CMD_INIT;//Cmd_KEY
   IEBus_TData1=0x00;//KEY  
   IEBus_SendData(IEBus_TxBuf);	  
}

void Clock_Set(uchar data)
{
   uchar c1,c2;
   c1=data&0xF0;
   c2=data&0x0F;
   String_Attrib_Set(STATUSROW,23,6,YELLOW);
   String_Attrib_Set(STATUSROW+1,20,9,YELLOW);
   if(c1==0)
   { 
     RTC_SetTime((SetHour/10*16)+SetHour%10,(SetMinute/10*16)+SetMinute%10);
     RTC_SetDat((SetYear/10*16)+SetYear%10,(SetMonth/10*16)+SetMonth%10,(SetData/10*16)+SetData%10);
     INT1_Enable;
     return;
   }
   INT1_Disable;
   switch(c1)
   {
     case 0x10:
               if(c2==1)
               {  SetMinute++;
                   if(SetMinute>59)
                      SetMinute=0;
               }
               else if(c2==2)
               {                  
                   if(SetMinute==0)
                      SetMinute=59;
                   else
                      SetMinute--; 
               }                 
               Time_Disp((SetHour/10*16)+SetHour%10,(SetMinute/10*16)+SetMinute%10);                 
               String_Attrib_Set(STATUSROW,27,2,YELLOW+0x08);
               break;
     case 0x20:
               if(c2==1)
               {  SetHour++;
                   if(SetHour>23)
                      SetHour=0;
               }
               else if(c2==2)
               {                  
                   if(SetHour==0)
                      SetHour=23;
                   else
                      SetHour--; 
               }  
               Time_Disp((SetHour/10*16)+SetHour%10,(SetMinute/10*16)+SetMinute%10);               
               String_Attrib_Set(STATUSROW,24,2,YELLOW+0x08);
               break;
     case 0x30:
               if(c2==1)
               {  SetData++;
                   if(SetData>31)
                      SetData=1;
               }
               else if(c2==2)
               {                  
                   if(SetData==1)
                      SetData=31;
                   else
                      SetData--; 
               }  
               Data_Disp((SetYear/10*16)+SetYear%10,(SetMonth/10*16)+SetMonth%10,(SetData/10*16)+SetData%10);
               String_Attrib_Set(STATUSROW+1,27,2,YELLOW+0x08);
               break;
     case 0x40:
               if(c2==1)
               {  SetMonth++;
                   if(SetMonth>12)
                      SetMonth=1;
               }
               else if(c2==2)
               {                  
                   if(SetMonth==1)
                      SetMonth=12;
                   else
                      SetMonth--; 
               }  
               Data_Disp((SetYear/10*16)+SetYear%10,(SetMonth/10*16)+SetMonth%10,(SetData/10*16)+SetData%10);
               String_Attrib_Set(STATUSROW+1,24,2,YELLOW+0x08);
               break;
     case 0x50:
               if(c2==1)
               {  SetYear++;
                   if(SetYear>99)
                      SetYear=0;
               }
               else if(c2==2)
               {                  
                   if(SetYear==0)
                      SetYear=99;
                   else
                      SetYear--; 
               }  
               Data_Disp((SetYear/10*16)+SetYear%10,(SetMonth/10*16)+SetMonth%10,(SetData/10*16)+SetData%10);
               String_Attrib_Set(STATUSROW+1,21,2,YELLOW+0x08);
               break;
   }
}


void Cmd_Process(void)
{
   uint address;
   uchar i;
   address=(IEBus_RxBuf[0]<<4)+(IEBus_RxBuf[1]>>4);

   if(address==IEBus_MASTERADDR)//Masterboard 
    {     
       if(IEBus_RxBuf[3]==0xA0)
          {}
       else if((IEBus_RxBuf[3]!=0xA1)&&(IEBus_RxBuf[4]!=0x01)&&(!PowVal))//如果没有开机,按下的不是power则返回
           return;
       switch(IEBus_RxBuf[3])
        {
          case CMD_INITSET:
                     switch(IEBus_RxBuf[4])
                      {
                        case 0: 
                                if(!ConnectVal)
                                   ConnectCheck(); 
                                else   
                                   SendDataToBus(CMD_CONNECTREQ,StatusFlag&0x80,0x00);
                                break;
                        case 1://Video 
                                for(i=0;i<VIDEOMENU_NUM;i++)
                                     VideoMenu[i]=IEBus_RxBuf[i+5];                                
                                break;
                        case 2:
                                for(i=0;i<SOUNDMENU_NUM;i++)
                                     SoundMenu[i]=IEBus_RxBuf[i+5]; 
                                break;
                        case 3:
                                UsrMenu=IEBus_RxBuf[5];
                                ConnectOk;//当全部的初始值传递之后才表示连接,否则表示连接失败  
                                break;
                        case 4:
                        case 5:
                        case 6:  
                                for(i=0;i<8;i++)
                                     FreqTab[IEBus_RxBuf[4]-4][i]=IEBus_RxBuf[i+5];
                                break;                     
                       }
                     
                     break;
          case CMD_SYSTEMSET://system setting 
                     switch(IEBus_RxBuf[4])
                        {
                           case 0: if(IEBus_RxBuf[5]==0x01)
                                     {  SysOn_Init(); PowOn; }
                                   else
                                     { SysOff_Init(); PowOff;}
                                   break;  
                           case 1: SourceMode=IEBus_RxBuf[5]; Signal_Disp();break;
                           case 2: SoundVolume=IEBus_RxBuf[5];Volume_Disp();break; 
                           case 3: Windows_Close();break; 
                           case 4: 
                                   if(IEBus_RxBuf[5]==0x01)
                                     Ch_Disp(1);
                                   else
                                     Ch_Disp(0);                                   
                                   break;
                           case 5: break;
                           case 6: UsrMenu=IEBus_RxBuf[5];
                                   break;
                           case 7: Clock_Set(IEBus_RxBuf[5]);                                   
                                   break;
                         }
                     break;
          case CMD_SOUNDSET://Sound setting
                     switch(IEBus_RxBuf[4])
                       {
                         case 0: 
                                  if(IEBus_RxBuf[5])
                                      SoundSet_Windows();
                                  else
                                      Windows_Close();                                  
                                  break;
                         case 1: 
                         case 2:
                         case 3: 
                         case 4: SoundMenuCnt=IEBus_RxBuf[4]-1;
                                 SoundMenu[SoundMenuCnt]=IEBus_RxBuf[5];
                                 Sounddata_Updata();
                                 break;
                         default:break;
                        }                     
                     break;
          case CMD_VIDEOSET://video setting                     
                     switch(IEBus_RxBuf[4])
                       {
                         case 0: 
                                  if(IEBus_RxBuf[5])
                                  {
                                    VideoSet_Windows();
                                    //WindowDispFlag=VIDEO_WINDOW;
                                   }
                                  else
                                  {
                                    Windows_Close();
                                    //WindowDispFlag=NO_WINDOW;
                                   }
                                  break;
                         case 1: 
                         case 2:
                         case 3: 
                         case 4: 
                         case 5:
                                 VideoMenuCnt=IEBus_RxBuf[4]-1;
                                 VideoMenu[VideoMenuCnt]=IEBus_RxBuf[5];
                                 Videodata_Updata();
                                 Ctr_Process();
                                 break;
                         default:break;
                        }     
                     break;
          case CMD_RADIOSET://radio setting                     
                     RadioBand=IEBus_RxBuf[4];
                     RadioFreCH=IEBus_RxBuf[5];
                     RadioFreq=IEBus_RxBuf[6];                     
                     Radiodata_Updata();
                     break;
          case CMD_DVDSET: 
                     
                     DvdData_Updata(IEBus_RxBuf[4],IEBus_RxBuf[5],
                                    IEBus_RxBuf[6],IEBus_RxBuf[7],IEBus_RxBuf[8]);
                     break;
          case CMD_USRSET://USE SETTING
                     switch(IEBus_RxBuf[4])
                     {
                       case 0:  
                                 if(IEBus_RxBuf[5])
                                   {
                                    UsrSet_Windows();
                                    //WindowDispFlag=USR_WINDOW;
                                    }
                                 else
                                  {
                                    Windows_Close();
                                    //WindowDispFlag=NO_WINDOW;
                                   }
                                 break;
                        case 1:  
                                 UsrMenuCnt=IEBus_RxBuf[4]-1;
                                 if((IEBus_RxBuf[5]&0x01)==0x01)
                                    UsrMenu|=0x01;
                                 else
                                    UsrMenu&=0xFE;
                                 Usrdata_Updata();
                                 break;
                        case 2:   
                                 UsrMenuCnt=IEBus_RxBuf[4]-1;
                                 if((IEBus_RxBuf[5]&0x02)==0x02)
                                    UsrMenu|=0x02;
                                 else
                                    UsrMenu&=0xFD;
                                 Usrdata_Updata();
                                 break;
                        case 3:   
                                 UsrMenuCnt=IEBus_RxBuf[4]-1;
                                 if((IEBus_RxBuf[5]&0x04)==0x04)
                                    UsrMenu|=0x04;
                                 else
                                    UsrMenu&=0xFB;
                                 Usrdata_Updata();
                                 break;
                        case 4:   
                                 UsrMenuCnt=IEBus_RxBuf[4]-1;
                                 if((IEBus_RxBuf[5]&0x08)==0x08)
                                    UsrMenu|=0x08;
                                 else
                                    UsrMenu&=0xF7;
                                 Usrdata_Updata();
                                 break;         
                      }    
                     break;
          case 0xA7:
                     break;
          case 0xA8:
                     break;
          default:
                     break;
         }
       
     }
   else if(address==IEBus_DVCADDR)//DVC 方式
   {
        if((SourceMode!=SourceDvc)||(!PowVal))
          return;
        switch(IEBus_RxBuf[3])
        {
           case Dvc_Func_Time://Disp Play Time
                            DvcData_Updata(IEBus_RxBuf[4],IEBus_RxBuf[5],
                                           IEBus_RxBuf[6],IEBus_RxBuf[7],
                                           IEBus_RxBuf[8],IEBus_RxBuf[9]);
                            break;
        }
    }
}

⌨️ 快捷键说明

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