key.c

来自「全数字高清电视数字调谐器」· C语言 代码 · 共 610 行 · 第 1/2 页

C
610
字号
#if(DEBUG)
         printf("key 3\n");
  as.f_vif=china_ch.pic_if;
  as.off_audio=slep;
  as.sound_freq=sound;
 
  tda9886_set(as);
         #endif

}
void  exit()//退出菜单
{
     if(signal) 
            {            
             pal_ntsc();
             if(p_n)             
             osd_start1();
             else osd_starta();
             }
         else osd_start0();
   
  #if(DEBUG)
         printf("key 4\n");
         #endif
  }
void sound_select()//进入声音中频调节
  {  
   while(1)
       {
        if(key3())//+
                   { 
                   sound++;
                   if(sound>3)
                      sound=0;
                      vol_av(menu_cr2);
                   }
       if(key2())//-
                    {
                     sound--;
                    if(sound>3)
                       sound=3;
                       vol_av(menu_cr2);
                    }            
       
      if(key4())
                 {
                 
                 return;
                 }
}
}

void tv_av_select()//进入TV/AV1/AV2
{ 
   while(1)
       {
        if(key3())//+
                   { 
                   tv_av++;
                   if(tv_av>2)
                      tv_av=0;
                    vol_av(menu_cr2);
                   }
       if(key2())//-
                    {
                     tv_av--;
                    if(tv_av>2)
                       tv_av=2;
                     vol_av(menu_cr2);
                    }            
       
      if(key4())
                 {
                 
                  return;
                 }
 }
}
void posa()//节目
{
 while(1)
       {
        if(key3())//+
                   { 
                   pos++;
                   if(pos>250)
                      pos=0;
                    vol_main(menu_cr1);
                     printf("please input char set....\n");
                     tongxin_rxd();
                   }
       if(key2())//-
                    {
                     pos--;
                    if(pos>250)
                       pos=250;
                    vol_main(menu_cr1);
                    }            
       
      if(key4())
                 {
                 
                  return;
                 }
 }

}
void vol_off()//进入静音 
{
 while(1)
       {
        if(key3())//+
                   { 
                   slep++;
                   if(slep>1)
                      slep=0;
                    vol_av(menu_cr2);
                   }
       if(key2())//-
                    {
                     slep--;
                    if(slep>1)
                       slep=1;
                     vol_av(menu_cr2);
                    }            
       
      if(key4())
                 {
                 
                  return;
                 }
 }

}

void band_s()//波段
{
 while(1)
       {
        if(key3())//+
                   { 
                   band++;
                   if(band>2)
                      band=0;
                    vol_main(menu_cr1);
                   }
       if(key2())//-
                    {
                     band--;
                    if(band>2)
                       band=2;
                    vol_main(menu_cr1);
                    }            
       
      if(key4())
                 {
                 
                  return;
                 }
 }

}



bit key1()
{  
  if(!key1_menu)
       {
        delay1(500);
        if(!key1_menu)
           {	          
            delay1(300);
            while(!key1_menu);				
           return(1);
           }
        }
 return(0);    
}


bit key2()
{  
 unsigned int i;
 i=0;
 if(!key2_up)
       {
        delay1(500);
        if(!key2_up)
           {	  
            do
            {
            delay1(500);
            i++;
            if(i>400)
               return(1);
            }
          while(!key2_up);				
           return(1);
           }
        }
 return(0);    
}

bit key3()
{   
 unsigned int i;
 i=0;
 if(!key3_np)
       {
        delay1(500);
        if(!key3_np)
           {	          
            do
            {
            delay1(500);
             i++;
            if(i>400)
               return(1);
            }
            while(!key3_np);				
           return(1);
           }
        }
 return(0);    
    
}

bit key4()
{  
 if(!key4_pow)
       {
        delay1(500);
        if(!key4_pow)
           {	          
            delay1(300);
            while(!key4_pow);				
           return(1);
           }
        }
 return(0);    
}

void  ret_ch(ret_s dv,unsigned char xh)//保存有信号频道
{
union h
     {
      ret_s pk;
      unsigned char hu[31];
      } df;

                 df.pk.country=dv.country;
                 df.pk.chh=dv.chh;
                 df.pk.sound_freqf=dv.sound_freqf;
                   
                 df.pk.rff=dv.rff;
                 df.pk.low_freqf=dv.low_freqf;
                 df.pk.up_freqf=dv.up_freqf;
                 
                 df.pk.pic_if=dv.pic_if;
                 df.pk.f_iff2=dv.f_iff2;               
                 df.pk.fif2_bw=dv.fif2_bw;   
                 df.pk.f_stepf=dv.f_stepf;               
                
       wirte_24c64(xh*32+ch_64,df.hu,31);

}


void tuning_cun(unsigned char i)//调谐到预定频道
{
unsigned int x;
unsigned int s;
 tv ac; 
 av as;
 union h
     {
      ret_s pk;
      unsigned char hu[31];
      } df;
chan_le=i2c_reada(ch_cun);
read_24c64(i*32+ch_64,df.hu,31);
   ac.f_if2=df.pk.f_iff2;
   ac.f_step=df.pk.f_stepf;
   ac.fif_bw=df.pk.fif2_bw;
   ac.rf=df.pk.rff;      
   tuning_freq(ac);//调到频道
  as.f_vif=df.pk.pic_if;
  as.off_audio=slep;
  as.sound_freq= df.pk.sound_freqf; 
  #if(DEBUG)
  x=as.off_audio;s= as.sound_freq;
      printf("图像中频=%f,静音=%u,声音中频=%u\n ",as.f_vif,x,s);
   #endif
  tda9886_set(as);
}


void daya1(unsigned long i)
{
for (;i!=0;i--)
    _nop_();

}

⌨️ 快捷键说明

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