📄 al242_decoder.lst
字号:
259 1 if (gucDisplayMode==MODE2){
260 1 SetReg(SLAVE_ADDRESS_AL242, 0x30,0x1b);
261 1 }
262 1 }
263 1 else{
264 1 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x03);
265 1 ucTemp &= 0xf8; // 2d filter for PAL...
266 1 SetReg(SLAVE_ADDRESS_AL242, 0x03, ucTemp);
267 1 }
268 1 }
269 1 else {
270 1
271 1 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x03);
272 1 ucTemp &= 0xf8;
273 1 ucTemp |= (VideoSpec[ADAPTIVE_MODE][uiVideoModeX]&0x87);//jason 9/27
274 1 SetReg(SLAVE_ADDRESS_AL242, 0x03, ucTemp);
275 1
276 1 }
277 1 */
278 1 AL242_SoftWareReset();
279 1
280 1
281 1 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x0f);
282 1 ucTemp &= 0xc0;
283 1 ucTemp |= VideoSpec[CAUTOPOS][uiVideoModeX];
284 1 SetReg(SLAVE_ADDRESS_AL242, 0x0f, ucTemp);
285 1
286 1 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x82);
287 1 ucTemp &= 0xef;
288 1 ucTemp |= VideoSpec[COMB_WIDE_BAND][uiVideoModeX] << 4;
289 1 SetReg(SLAVE_ADDRESS_AL242, 0x82, ucTemp);
290 1
291 1
292 1
293 1 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x07);
294 1 ucTemp &= 0xcf;
295 1 ucTemp |= 0x20;
296 1 SetReg(SLAVE_ADDRESS_AL242,0x07, ucTemp);
297 1
298 1 SetReg(SLAVE_ADDRESS_AL242, 0x0c, 0x8a);
299 1
300 1 uiVideoStandard = uiVideoModeX;
301 1
C51 COMPILER V7.50 AL242_DECODER 08/11/2008 14:05:28 PAGE 6
302 1 SetReg(SLAVE_ADDRESS_AL320, 0xff, 0x01); //Switch to Page2
303 1 }
304 // ********************************************************************************
305 // Function: SetupAL242EVBVideoMode;
306 // Description: Setup AL242EVB to assigned video standard
307 // Input parameters: uiVideoFormatX
308 // NTSC_M 0
309 // NTSC_443 1
310 // PAL_I 2
311 // PAL_M 3
312 // PAL_N 4
313 // SECAMx 5
314 // PAL_CN 6
315 // PAL_60 7
316 // NTSC_J 8
317 // Return values: None
318 // ********************************************************************************
319 void AL242_SetupEVBVideoMode(Word uiVideoFormatX)
320 {
321 1 static Byte cData=0,ucTemp;
322 1 // ucTemp = EEPROMRead(BANK0, VIDEOSTANDARD_SAVE);
323 1
324 1 switch(uiVideoFormatX){
325 2 case PAL_M:
326 2 // if (gucDisplayMode == MODE1)
327 2 InitReg(AL320_INO_NTSC_M_1);
328 2 // else
329 2 // InitReg(AL320_INO_NTSC_M_2);
330 2 gucVideoStandard = PAL_MODE;
331 2 break;
332 2 case NTSC_M:
333 2 case NTSC_J:
334 2 case PAL_60:
335 2
336 2 // if (gucDisplayMode == MODE1)
337 2 InitReg(AL320_INO_NTSC_M_1);
338 2 // else
339 2 // InitReg(AL320_INO_NTSC_M_2);
340 2
341 2
342 2 gucVideoStandard = NTSC_MODE;
343 2
344 2 break;
345 2 case NTSC_443:
346 2 // if (gucDisplayMode == MODE1)
347 2 InitReg(AL320_INO_NTSC_M_1);
348 2 // else
349 2 // InitReg(AL320_INO_NTSC_M_2);
350 2 gucVideoStandard = NTSC_MODE;
351 2
352 2 break;
353 2 case PAL_N:
354 2 // if (gucDisplayMode == MODE1)
355 2 InitReg(AL320_INO_PAL_M_1);
356 2 // else
357 2 // InitReg(AL320_INO_PAL_M_2);
358 2 gucVideoStandard = PAL_MODE;
359 2
360 2 break;
361 2 case PAL_CN:
362 2 // if (gucDisplayMode == MODE1)
363 2 InitReg(AL320_INO_PAL_M_1);
C51 COMPILER V7.50 AL242_DECODER 08/11/2008 14:05:28 PAGE 7
364 2 // else
365 2 // InitReg(AL320_INO_PAL_M_2);
366 2 gucVideoStandard = PAL_MODE;
367 2
368 2 break;
369 2 case PAL_I:
370 2 if(gbFirstLoadData){
371 3 if(cData==1)
372 3 gbFirstLoadData=FALSE;
373 3 cData=1;
374 3
375 3 if(ucTemp==NTSC_MODE){
376 4
377 4 // if (gucDisplayMode == MODE1)
378 4 InitReg(AL320_INO_PAL_M_1);
379 4 // else
380 4 // InitReg(AL320_INO_PAL_M_2);
381 4 }
382 3
383 3 }
384 2 else{
385 3
386 3 // if (gucDisplayMode == MODE1)
387 3
388 3 InitReg(AL320_INO_PAL_M_1);
389 3 // else
390 3 // InitReg(AL320_INO_PAL_M_2);
391 3 }
392 2 gucVideoStandard = PAL_MODE;
393 2 SetReg(SLAVE_ADDRESS_AL242, 0x17, 0x0b);
394 2
395 2 break;
396 2 case SECAMx:
397 2
398 2 // if (gucDisplayMode == MODE1)
399 2 InitReg(AL320_INO_PAL_M_1);
400 2 // else
401 2 // InitReg(AL320_INO_PAL_M_2);
402 2
403 2 gucVideoStandard = PAL_MODE;
404 2
405 2 break;
406 2 }
407 1 // EEPROMWrite(BANK0, VIDEOSTANDARD_SAVE, gucVideoStandard);
408 1
409 1 }
410
411 // ********************************************************************************
412 // Function: InputChannelSelectAL242;
413 // Description: Switching AL242 decoder input channel
414 // Input parameters: _InputChannelX:
415 // INPUT0: CVBS0
416 // INPUT1: SVideo_0
417 // INPUT2: Component_1
418 // INPUT3: NULL
419 // Return values: _Input been assign=_InputChannelX.
420 // ********************************************************************************
421 void AL242_InputChannelSelect(Byte ucInputChannelX){
422 1
423 1 Byte ucTemp;
424 1 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x00);
425 1 switch(ucInputChannelX & 0x03){
C51 COMPILER V7.50 AL242_DECODER 08/11/2008 14:05:28 PAGE 8
426 2
427 2 case INPUT0://_CVBS0:
428 2
429 2 ucTemp = 0x20;
430 2 SetReg(SLAVE_ADDRESS_AL242, 0x07, ucTemp);
431 2
432 2
433 2 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x00);
434 2 ucTemp &= 0xfe;
435 2 SetReg(SLAVE_ADDRESS_AL242, 0x00, ucTemp);
436 2
437 2
438 2 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x01);
439 2 ucTemp &= 0x3f;
440 2 SetReg(SLAVE_ADDRESS_AL242, 0x01, ucTemp);
441 2
442 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x01); //for CVBS1
443 2 SetReg(SLAVE_ADDRESS_AL242, 0x29, 0x01);
444 2
445 2
446 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x00);
447 2
448 2 break;
449 2 /*
450 2 case INPUT1://_SVideo0:
451 2
452 2 ucTemp = 0x20;
453 2 SetReg(SLAVE_ADDRESS_AL242, 0x07, ucTemp);
454 2
455 2 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x00);
456 2 ucTemp |= 0x01;
457 2 SetReg(SLAVE_ADDRESS_AL242, 0x00, ucTemp);
458 2
459 2
460 2 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x01);
461 2 ucTemp &= 0x3f;
462 2 SetReg(SLAVE_ADDRESS_AL242, 0x01, ucTemp);
463 2
464 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x01);
465 2
466 2 #ifdef AL320EVB
467 2 SetReg(SLAVE_ADDRESS_AL242, 0x29, 0x00);//for SVIDEO1
468 2 #else
469 2 SetReg(SLAVE_ADDRESS_AL242, 0x29, 0x00);//for SVIDEO0
470 2 #endif
471 2
472 2
473 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x00);
474 2
475 2 break;
476 2
477 2 case INPUT2://_Component1:
478 2
479 2
480 2 ucTemp = 0x23;
481 2 SetReg(SLAVE_ADDRESS_AL242, 0x07, ucTemp);
482 2
483 2 ucTemp = GetReg(SLAVE_ADDRESS_AL242, 0x01);
484 2 ucTemp &= 0x3f;
485 2 ucTemp |= 0x41;
486 2 SetReg(SLAVE_ADDRESS_AL242, 0x01, ucTemp);
487 2
C51 COMPILER V7.50 AL242_DECODER 08/11/2008 14:05:28 PAGE 9
488 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x01);
489 2 SetReg(SLAVE_ADDRESS_AL242, 0x29, 0x00);
490 2 if(gucVideoStandard==PAL_MODE)
491 2 SetReg(SLAVE_ADDRESS_AL242, 0x01, 0x05);
492 2
493 2 SetReg(SLAVE_ADDRESS_AL242, 0xff, 0x00);
494 2
495 2 break;
496 2
497 2 case INPUT3:
498 2
499 2 break;
500 2 */
501 2 }
502 1
503 1
504 1 }
505
506
507
508 void UpdateStandard(void)
509 {
510 1
511 1
512 1 if (cNewStandard != cCurStandard)
513 1 {
514 2 cCurStandard = cNewStandard ;
515 2 if (bUpdateStandard)
516 2 {
517 3 AL242_SetupEVBVideoMode(cNewStandard);
518 3 // AL320_LoadingSystem();
519 3
520 3 AL242_SetupVideoModeX(cNewStandard, gucInputChannel);
521 3 bUpdateStandard = 0;
522 3 // GetSignalStatus();
523 3 }
524 2 }
525 1 }
526
527 char CheckModeLock(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -