tv.c
来自「myson的MTV332的DEMO程序 主要功能有菜单的设计和无线遥控以及视频」· C语言 代码 · 共 162 行
C
162 行
#include "global.h"
#ifdef _TV_
BYTE TVChannel,BackTVCh;
BYTE TVSearchCH[16];
BYTE TVMTS;
WORD code NTSC_CHANNEL[] =
{
0x0000, 0x06F0, 0x0650, 0x06B0, 0x0710, 0x07B0, 0x0810, 0x0DD0,
0x0E30, 0x0E90, 0x0EF0, 0x0F50, 0x0FB0, 0x1010, 0x0A70, 0x0AD0,
0x0B30, 0x0B90, 0x0BF0, 0x0C50, 0x0CB0, 0x0D10, 0x0D70, 0x1070,
0x10D0, 0x1130, 0x1190, 0x11F0, 0x1250, 0x12B0, 0x1310, 0x1370,
0x13D0, 0x1430, 0x1490, 0x14F0, 0x1550, 0x15B0, 0x1610, 0x1670,
0x16D0, 0x1730, 0x1790, 0x17F0, 0x1850, 0x18B0, 0x1910, 0x1970,
0x19D0, 0x1A30, 0x1A90, 0x1AF0, 0x1B50, 0x1BB0, 0x1C10, 0x1C70,
0x1CD0, 0x1D30, 0x1D90, 0x1DF0, 0x1E50, 0x1EB0, 0x1F10, 0x1F70,
0x1FD0, 0x2030, 0x2090, 0x20F0, 0x2150, 0x21B0, 0x2210, 0x2270,
0x22D0, 0x2330, 0x2390, 0x23F0, 0x2450, 0x24B0, 0x2510, 0x2570,
0x25D0, 0x2630, 0x2690, 0x26F0, 0x2750, 0x27B0, 0x2810, 0x2870,
0x28D0, 0x2930, 0x2990, 0x29F0, 0x2A50, 0x2AB0, 0x2B10, 0x0890,
0x08F0, 0x0950, 0x09B0, 0x0A10, 0x2B70, 0x2BD0, 0x2C30, 0x2C90,
0x2CF0, 0x2D50, 0x2DB0, 0x2E10, 0x2E70, 0x2ED0, 0x2F30, 0x2F90,
0x2FF0, 0x3050, 0x30B0, 0x3110, 0x3170, 0x31D0, 0x3230, 0x3290,
0x32F0, 0x3350, 0x33B0, 0x3410, 0x3470, 0x34D0
};
#endif
#ifdef _TV_
void Set_TVChannel()
{
union DW_TEMP dw_temp;
//BYTE temp[4];
DoWait(50);
dw_temp.valW[0] = NTSC_CHANNEL[TVChannel];
dw_temp.valB[2] = 0xCE;
if(dw_temp.valW[0] < 0x0D00)
dw_temp.valB[3] = 0x01;
else if(dw_temp.valW[0] < 0x1E80)
dw_temp.valB[3] = 0x02;
else
dw_temp.valB[3] = 0x04;
WriteData(I2C_TVTUNER,dw_temp.valB[0] ,&dw_temp.valB[1] ,3);
}
void TV_Channel_Up()
{
BackTVCh = TVChannel;
do{
TVChannel ++;
if(TVChannel > TV_ChannelTotal)
TVChannel= 0;
}while(!(TVSearchCH[TVChannel/8] & (0x01 << (TVChannel%8))));
Set_TVChannel();
Show_TVChannel();
SaveProgressData(TVCH);
//sAudio.Mute = 0;
}
void TV_Channel_Down()
{
BackTVCh = TVChannel;
do{
TVChannel --;
if(TVChannel > TV_ChannelTotal)
TVChannel=TV_ChannelTotal;
}while(!(TVSearchCH[TVChannel/8] & (0x01 << (TVChannel%8))));
Set_TVChannel();
Show_TVChannel();
SaveProgressData(TVCH);
//sAudio.Mute = 0;
}
void TV_Channel_Jump()
{
BYTE temp;
temp = TVChannel;
TVChannel = BackTVCh;
BackTVCh = temp;
Set_TVChannel();
//Show_TVChannel();
//Save_Var(SaveTVChannel);
//sAudio.Mute = 0;
}
void TV_Channel_Search()
{
BYTE i,temp_TVChannel,Temp,tmp;
//BYTE AudioTemp[4];
//bMuteFlag = 1;
DoWait(50);
temp_TVChannel = TVChannel;
if(TV_ChannelTotal==125)
Temp=0x60; // NTSC System and Signal detected
else
Temp=0x20; // PAL Syatem and Signal Detected
for(i = 0; i < 16; i++)
TVSearchCH[i] = 0;
for(i = 1; i <= TV_ChannelTotal; i++)
{
TVChannel = i;
Set_TVChannel();
Show_TVChannel();
DoWait(200);
CS7111_Read(0x00,&tmp,1);
tmp&=0x60;
if(tmp==Temp)
TVSearchCH[i/8] = (TVSearchCH[i/8]>>1) | 0x80;
else
TVSearchCH[i/8] = (TVSearchCH[i/8]>>1);
}
//bMuteFlag = 0;
SaveProgressData(SaveTVSearch);
TVChannel = temp_TVChannel;
Set_TVChannel();
}
void TV_MTS()
{
#ifdef _MSP3450_
if(TVMTS == 0)
Set_Vol_Source(STEREO_AB);
else if(TVMTS == 1)
Set_Vol_Source(STEREO_A);
else
Set_Vol_Source(STEREO_B);
#endif
}
void Show_TVChannel()
{
gotoxy(5,0);
PrintValue(TVChannel,Red);
EnableOSD();
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?