osdctrl.lst
来自「宏芯T102芯片驱动(51单片机作主控)」· LST 代码 · 共 526 行 · 第 1/2 页
LST
526 行
246 3 }
247 2 twdDelay(NVRDELAY);
248 2 OSDShowVideoData();
249 2 }
250 1 }
251 void AdjVideoBright(sCHAR sStep)
252 {
253 1 if( (EepVideo.cBright+sStep)<=V_BRIGHT_MAX && (EepVideo.cBright+sStep)>=V_BRIGHT_MIN)
254 1 {
255 2 EepVideo.cBright+=sStep;
256 2 I2CWriteByte(TW101,VBRIGHT,EepVideo.cBright); //Ruby 2004-10-09
257 2 // I2CWriteByte(VIDEO_ADDR,VBRIGHT,EepVideo.cBright);
258 2 OSDShowVideoData();
259 2 I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_BRIGHT_INDEX, EepVideo.cBright);
260 2 twdDelay(NVRDELAY);
261 2
262 2 }
263 1 }
264
265 void AdjVideoContrast(sCHAR sStep)
266 {
267 1 if( (EepVideo.cContrast+sStep)<=V_CONTRAST_MAX && (EepVideo.cContrast+sStep)>=V_CONTRAST_MIN)
268 1 {
269 2 EepVideo.cContrast+=sStep;
270 2 I2CWriteByte(TW101,VCONTRAST,EepVideo.cContrast); //Ruby 2004-10-09
271 2 // I2CWriteByte(VIDEO_ADDR,VCONTRAST,EepVideo.cContrast);
272 2 OSDShowVideoData();
273 2 I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_CONTRAST_INDEX, EepVideo.cContrast);
274 2 twdDelay(NVRDELAY);
275 2
276 2 }
277 1 }
278
279 void AdjVideoSharp(sCHAR sStep)
280 {
281 1 if(EepVideo.cSharp>V_SHARP_MAX)
282 1 EepVideo.cSharp=V_SHARP_MAX-1;
283 1 if(EepVideo.cSharp<V_SHARP_MIN)
284 1 EepVideo.cSharp=V_SHARP_MIN;
285 1
286 1 if( (EepVideo.cSharp+sStep)<=V_SHARP_MAX && (EepVideo.cSharp+sStep)>=V_SHARP_MIN)
287 1 {
288 2 EepVideo.cSharp+=sStep;
289 2 #ifdef T100
LoadFilter(EepVideo.cSharp);
#else
292 2 I2CWriteByte(TW101+4,0x80,V_SHARP_MSK|(EepVideo.cSharp<<1));
293 2 #endif
294 2 // I2CWriteByte(TW101+4,0x80,V_SHARP_MSK|EepVideo.cSharp);
295 2 // I2CWriteByte(TW101+4,0x80,V_SHARP_DS);
296 2 OSDShowVideoData();
297 2 I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_SHARP_INDEX, EepVideo.cSharp);
298 2 twdDelay(NVRDELAY);
299 2
300 2 }
301 1
302 1 }
C51 COMPILER V7.06 OSDCTRL 12/28/2004 10:14:05 PAGE 6
303
304 void AdjVideoSat(sCHAR sStep)
305 {
306 1 if( (EepVideo.cSat+sStep)<=V_SAT_MAX && (EepVideo.cSat+sStep)>=V_SAT_MIN)
307 1 {
308 2 EepVideo.cSat+=sStep;
309 2
310 2 I2CWriteByte(TW101,VSAT,EepVideo.cSat);
311 2 OSDShowVideoData();
312 2 I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_SAT_INDEX, EepVideo.cSat);
313 2 twdDelay(NVRDELAY);
314 2 #if 0
//#ifdef NVRAM
SavePriData(1, EepPrivate.cVPos, idVPOS_INDEX);
twdDelay(NVRDELAY);
SavePriData(0, EepPrivate.wVOffset, idVOFFSET_INDEX);
#endif
320 2 }
321 1 }
322
323 void AdjVideoHue(sCHAR sStep)
324 {
325 1 if( (EepVideo.cHue+sStep)<=V_HUE_MAX && (EepVideo.cHue+sStep)>=V_HUE_MIN)
326 1 {
327 2 EepVideo.cHue+=sStep;
328 2 I2CWriteByte(VIDEO_ADDR,VHUE,EepVideo.cHue-0x80);
329 2 OSDShowVideoData();
330 2 I2CWriteByte(EEPVIDEOBLOCK, idVIDEO_HUE_INDEX, EepVideo.cHue);
331 2 twdDelay(NVRDELAY);
332 2 #if 0
//#ifdef NVRAM
SavePriData(1, EepPrivate.cVPos, idVPOS_INDEX);
twdDelay(NVRDELAY);
SavePriData(0, EepPrivate.wVOffset, idVOFFSET_INDEX);
#endif
338 2 }
339 1 }
340 #ifdef TV
341 extern bit m_bLCDOFF;
342
343
344 void AdjTVChannel(sCHAR sStep,bit bShow)
345 {
346 1 uCHAR cNum, cNum_b,cTotal;
347 1 uWORD wTemp;
348 1 #ifdef NTSC
349 1 if(m_bAir_Cable)
350 1 cTotal=125;
351 1 else
352 1 cTotal=83;
353 1 #endif
354 1 #ifdef PAL
cTotal=95;
#endif
357 1 // cNum=TVEEPGetChannel();
358 1
359 1 //TVSetChannel(I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX)-1);
360 1 TVSetChannel(I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX)-1);
361 1 cNum = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
362 1 cNum_b=cNum;
363 1
364 1
C51 COMPILER V7.06 OSDCTRL 12/28/2004 10:14:05 PAGE 7
365 1 if(skipon || bShow)
366 1 {
367 2 cNum+=sStep;
368 2 if(sStep)
369 2 {
370 3 if(cNum>cTotal)
371 3 cNum=1;
372 3 else if(cNum<1)
373 3 cNum=cTotal;
374 3 wTemp=TVSetChannel(cNum-1);
375 3 if(wTemp&0x8000)
376 3 m_bTV_Skip=1;
377 3 else
378 3 m_bTV_Skip=0;
379 3 }
380 2 }
381 1 else
382 1 {
383 2 do
384 2 {
385 3 cNum+=sStep;
386 3
387 3 if(cNum>cTotal)
388 3 cNum=1;
389 3 else if(cNum<1)
390 3 cNum=cTotal;
391 3
392 3 wTemp=TVSetChannel(cNum-1);
393 3 if(wTemp&0x8000)
394 3 m_bTV_Skip=1;
395 3 else
396 3 m_bTV_Skip=0;
397 3 }while(m_bTV_Skip&&(cNum_b!=cNum)&&sStep);
398 2 }
399 1 I2CWriteByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX, cNum);
400 1 twdDelay(NVRDELAY);
401 1 twdDelay(200);
402 1 SetTuner(wTemp);
403 1 //SourceSelect(); //Ruby 2004-11-03
404 1
405 1 if(!bShow)
406 1 {
407 2 OSDExit();
408 2 OSDEnable();
409 2 OSDPosition(RIGHT_TOP);
410 2 OSDDrawNum(cNum, 0, 19, 1, COL_NORMAL, DRAW_BLANK|0x03);
411 2 }
412 1 else
413 1 {
414 2 OSDDrawSkip();
415 2 OSDDrawNum(cNum, 0, 19, 1, COL_TITLE, DRAW_BLANK|0x03);
416 2 OSDDrawTVFreq(wTemp);
417 2
418 2 }
419 1
420 1 /*
421 1 I2CWriteByte(TW101,0xE8,0x10);
422 1 I2CWriteByte(TW101, 0xE9, EepVideo.cVolume);
423 1 AUDIO_MUTE=bTemp_mute;
424 1 */
425 1 }
426
C51 COMPILER V7.06 OSDCTRL 12/28/2004 10:14:05 PAGE 8
427
428
429 void AdjTVSkip(void)
430 {
431 1 uCHAR cNum;
432 1 uWORD wTVFreq;
433 1 m_bTV_Skip=!m_bTV_Skip;
434 1 twdDelay(NVRDELAY);
435 1 cNum = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
436 1 wTVFreq=TVSetChannel(cNum-1);
437 1 if(m_bTV_Skip)wTVFreq|=0x8000;
438 1 else wTVFreq&=0x7fff;
439 1 EEPSaveTVChannel(cNum-1, wTVFreq);
440 1 OSDDrawSkip();
441 1 ir_data=0;
442 1
443 1 }
444 void AdjTVSoundSystem(void)
445 {
446 1 if(m_cSoundSystem==PAL_I)
447 1 m_cSoundSystem=PAL_DK;
448 1 else
449 1 m_cSoundSystem=PAL_I;
450 1 OSDDrawSoundSystem();
451 1 I2CWriteByte(0x86, 0x02,m_cSoundSystem);
452 1 ir_data=0;
453 1 }
454 void AdjTVFineTune(sCHAR sStep)
455 {
456 1 uCHAR cTemp;
457 1 uWORD wTemp;
458 1
459 1 cTemp = I2CReadByte(EEPVIDEOBLOCK, idTVCHANNEL_INDEX);
460 1 twdDelay(NVRDELAY);
461 1 if(m_bAir_Cable)
462 1 {
463 2 wTemp=I2CReadByte(EEPVIDEOBLOCK+4, idTVCHANNEL_STAT+(cTemp-1)*2);
464 2 wTemp<<=8;
465 2 twdDelay(NVRDELAY);
466 2 wTemp|=I2CReadByte(EEPVIDEOBLOCK+4, idTVCHANNEL_STAT+(cTemp-1)*2+1);
467 2 }
468 1 else
469 1 {
470 2 wTemp=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+(cTemp-1)*2);
471 2 wTemp<<=8;
472 2 twdDelay(NVRDELAY);
473 2 wTemp|=I2CReadByte(EEPVIDEOBLOCK+2, idTVCHANNEL_STAT+(cTemp-1)*2+1);
474 2 }
475 1 wTemp += sStep;
476 1 OSDDrawTVFreq(wTemp);
477 1 #ifdef PAL
OSDDrawBand(wTemp);
#endif
480 1 SetTuner(wTemp);
481 1 EEPSaveTVChannel(cTemp-1, wTemp);
482 1 }
483 #endif
484 #endif
485
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 OSDCTRL 12/28/2004 10:14:05 PAGE 9
CODE SIZE = 1611 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 16
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?