📄 measure.lst
字号:
257 2 SetVactiveStart( GetVactiveStart()+add );
258 2 SaveVactiveEE(PcMode); // HHY 1.33
259 2 }
260 1 else {
261 2 SetVactiveStart( GetVactiveStart()+add );
262 2 SaveVactiveEE(PcMode); // HHY 1.33
263 2 SetVBackPorch( GetVBackPorch()+add ); // A6
264 2 SaveVBackPorchEE(PcMode); // HHY 1.33
265 2 }
266 1 }
267
268 void MoveActiveHpos(BYTE dir) //=== Right
269 {
270 1 char add;
271 1 WORD hstart, hend;
272 1
273 1 if( dir==UP ) {
274 2 if( HPosCurr>=HPosMax ) return;
275 2 add = 1;
276 2 }
277 1 else {
278 2 if( HPosCurr==0 ) return;
279 2 add = -1;
280 2 }
281 1 HPosCurr += add;
282 1
283 1 hstart = GetHactiveStart();
284 1 hend = GetHactiveEnd();
285 1
286 1 hstart += add;
287 1 hend += add;
288 1 SetHactiveStart(hstart);
289 1 SetHactiveEnd(hend);
290 1
291 1 SaveHactiveEE(PcMode); // HHY 1.33
292 1 }
293
294 BYTE GetVPosition(void)
295 {
296 1 int newv;
297 1
298 1 VPositionRange.Max = VPosMax;
299 1 VPositionRange.Default = VPosMax/2;
300 1 Mapping2( VPosCurr, &VPositionRange, &newv, &UserRange );
301 1
302 1 return newv;
303 1 }
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 6
304
305 BYTE SetVPosition(BYTE val) //0:UP, 1:DOWN
306 {
307 1 int newv;
308 1
309 1 MoveActiveVpos(val);
310 1
311 1 VPositionRange.Max = VPosMax;
312 1 VPositionRange.Default = VPosMax/2;
313 1 Mapping2( VPosCurr, &VPositionRange, &newv, &UserRange );
314 1
315 1 return newv;
316 1 }
317
318 BYTE GetHPosition(void)
319 {
320 1 return HPosCurr;
321 1 }
322
323 BYTE SetHPosition(BYTE val)
324 {
325 1 MoveActiveHpos(val);
326 1
327 1 return HPosCurr;
328 1 }
329 //=============================================================================
330 // Phase Measurement
331 // Return : PhaseBlue, PhaseGreen, PhaseRed
332 //=============================================================================
333 DWORD ReadOut4(void)
334 {
335 1 BYTE i;
336 1 DWORD dat=0;
337 1
338 1 for(i=0; i<4; i++) {
339 2 dat <<= 8;
340 2 dat |= (DWORD)ReadTW88(0x5a-i);
341 2 }
342 1 return dat;
343 1 }
344
345 BYTE GetPhaseRGB(void) // HHY 1.10 BYTE return
346 {
347 1 static bit flag=0;
348 1 DWORD _RGB;
349 1
350 1 #ifdef DEBUG_PC
BYTE sign;
#endif
353 1
354 1 _RGB = PhaseRGB;
355 1
356 1 if( !MeasureAndWait(3) ) {
357 2 #ifdef DEBUG_PC
Puts("\r\n Error at GetPhaseRGB");
#endif
360 2 return 0; //LJY001219
361 2 }
362 1
363 1 WriteTW88(0x5b, 0x00); // Read Phase B
364 1 PhaseRGB = ReadOut4();
365 1
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 7
366 1 WriteTW88(0x5b, 0x10); // Read Phase G
367 1 PhaseRGB += ReadOut4();
368 1
369 1 WriteTW88(0x5b, 0x20); // Read Phase R
370 1 PhaseRGB += ReadOut4();
371 1
372 1 #ifdef DEBUG_PC
if( PhaseRGB >= _RGB ) sign = '+'; else sign = '-';
dPrintf("(%c%08lx)", (WORD)sign, PhaseRGB);
#endif
376 1
377 1 if( PhaseRGB==_RGB ) { // NO INPUT ???
378 2 dPuts("\r\n??? SYNC loss...");
379 2 if(flag) {
380 3 flag = 0;
381 3 return 0;
382 3 }
383 2 else flag = 1;
384 2 }
385 1 else flag = 0;
386 1
387 1 return 1;
388 1 }
389 //============================================================================
390 // Detect Input source for DTV
391 //============================================================================
392 BYTE DetectDTVInputSource(void)
393 {
394 1 BYTE mode, _PcMode;
395 1
396 1 mode = ReadADC(0xC2)>>1 ;
397 1 #ifdef DEBUG_PC
Printf("\n +++DetectDTVInputSource==> Detect from ADC : 0x%2x", (WORD)mode);
#endif
400 1
401 1 if( GetInputSelection()==PC ) {
402 2 switch(mode)
403 2 {
404 3 case 1: _PcMode = EE_RGB_480I; break;
405 3 case 2: _PcMode = EE_RGB_576I; break;
406 3 case 3: _PcMode = EE_RGB_480P; break;
407 3 case 4: _PcMode = EE_RGB_576P; break;
408 3 case 5: _PcMode = EE_RGB_720P; break;
409 3 default:_PcMode = EE_PC_UNKNOWN; break;
410 3 }
411 2 }
412 1 else {
413 2 switch(mode)
414 2 {
415 3 case 1: _PcMode = EE_YPbPr_480I; break;
416 3 case 2: _PcMode = EE_YPbPr_576I; break;
417 3 case 3: _PcMode = EE_YPbPr_480P; break;
418 3 case 4: _PcMode = EE_YPbPr_576P; break;
419 3 case 5: _PcMode = EE_YPbPr_720P; break;
420 3 default:_PcMode = EE_PC_UNKNOWN; break;
421 3 }
422 2 }
423 1 return _PcMode;
424 1 }
425
426
427 //============================================================================
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 8
428 // Determine InputSource Format based on VPN
429 //============================================================================
430 // Input VPN
431 // Return PcMode
432 // InputSource (PC_XGA, PC_SVGA, PC_VGA)
433
434 BYTE DecideVGAInputSource(WORD vpn, WORD ivf)
435 {
436 1 BYTE _PcMode;
437 1 WORD sync;
438 1
439 1 _PcMode = EE_PC_UNKNOWN;
440 1 //InputSource = UNKNOWN;
441 1
442 1 _PcMode = DetectDTVInputSource();
443 1 if(_PcMode != EE_PC_UNKNOWN ) return _PcMode;
444 1
445 1 //====================== PC DOS ================================
446 1 if( vpn >= 440 && vpn <= 460 ) {
447 2 //InputSource = PC_DOS1;
448 2 switch( ivf ) {
449 3 case 69: case 70: case 71: _PcMode = EE_DOS; break;
450 3
451 3 case 84: case 85: case 86: case 87:
452 3 GetHpnVpn(1);
453 3 if( ReadTW88(0x40) & 0x02 )
454 3 _PcMode = EE_SP1;
455 3 else
456 3 _PcMode = EE_SP2;
457 3 break;
458 3
459 3 default: _PcMode = EE_PC_UNKNOWN; break;
460 3
461 3 }
462 2 }
463 1 //====================== PC VGA, DTV 480P ======================
464 1 else if( vpn>=490 && vpn<=540 ) {
465 2
466 2 //------ DTV YPbPr 480P ------
467 2 if( GetInputSelection()==DTV ) {
468 3 _PcMode = EE_YPbPr_480P;
469 3 }
470 2 //------ PC VGA --------------
471 2 else {
472 3 switch( ivf ) {
473 4 case 59: case 60: case 61:
474 4 //#ifdef SUPPORT_DTV
475 4 MeasureAndWait(3);
476 4 sync = GetVSYNCPulse();
477 4 if(sync > 5) _PcMode = EE_RGB_480P;
478 4 else
479 4 //#endif
480 4 _PcMode = EE_VGA_60;
481 4 break;
482 4 case 65: case 66: case 67: _PcMode = EE_VGA_66; break;
483 4 case 69: case 70: case 71: _PcMode = EE_VGA_70; break;
484 4 case 72: case 73: _PcMode = EE_VGA_72; break;
485 4 case 74: case 75: case 76: _PcMode = EE_VGA_75; break;
486 4 case 83:
487 4 case 84: case 85: case 86: _PcMode = EE_VGA_85; break;
488 4 default: _PcMode = EE_PC_UNKNOWN; break;
489 4 }
C51 COMPILER V7.50 MEASURE 08/20/2007 10:23:31 PAGE 9
490 3
491 3 }
492 2 }
493 1 //====================== PC SVGA ===============================
494 1 else if( vpn>=610 && vpn<=680+30 ) {
495 2 //InputSource = PC_SVGA;
496 2 switch( ivf ) {
497 3
498 3
499 3 case 49: case 50: case 51:
500 3 if( GetInputSelection()==PC ) _PcMode = EE_RGB_576P;
501 3 else _PcMode = EE_YPbPr_576P;
502 3 break;
503 3
504 3 case 55: case 56: case 57: _PcMode = EE_SVGA_56; break;
505 3 case 59: case 60: case 61: _PcMode = EE_SVGA_60; break;
506 3 case 69: case 70: case 71: _PcMode = EE_SVGA_70; break;
507 3 case 72: case 73: _PcMode = EE_SVGA_72; break;
508 3
509 3 case 74: case 75: case 76:
510 3 if( vpn>=650 ) _PcMode = EE_832_75;
511 3 else _PcMode = EE_SVGA_75;
512 3 break;
513 3
514 3 case 83:
515 3 case 84: case 85: case 86: _PcMode = EE_SVGA_85; break;
516 3
517 3 default: _PcMode = EE_PC_UNKNOWN; break;
518 3 }
519 2 }
520 1
521 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -