vfd_drv_pt6554.c
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:4k
源码类别:

DVD

开发平台:

C/C++

  1. void reset_vfd(void)  
  2. {
  3. init_vfd_clear();
  4. WaitIopFunRdy(IOP_RDY_WAIT);
  5. #ifdef YADAI_PT6554_PANNEL
  6. vfd_set_str(0, "HELLO");
  7. #endif
  8. }
  9. void polling_vfdr(void)  //pt6554 type vfd
  10. {    
  11. #ifdef SUPPORT_SPI_QSI
  12.   //not use
  13. #endif
  14. #ifndef  SUPPORT_SPI_QSI
  15.   
  16.   
  17. #ifdef SUPPORT_VFD
  18. UINT8   i;
  19. UINT32  temp;
  20. UINT32  key_data;
  21. static UINT8 count = 0;
  22. static UINT32 key_previ = 0;
  23. static BYTE pt6554_flag=1;
  24. static BYTE bWriteState=0;
  25. UINT32 *VfdReadData;
  26. if(regs0->iop_data[0] & FUN_MASK)
  27. return;
  28. if(vfd_state == VFD_READ)
  29. {
  30. //read key data 
  31. VfdReadData = ((UINT32 *) (SDRAM_BASE_UNCACHED + regs0->iopya * 1024 + 0x5d8));
  32. //current is read 3 byte on io
  33. key_data = *VfdReadData & 0x00ffffff;
  34. //if vfd is no connect, summer 20020912
  35. if(key_data != 0x00ffff)
  36. *VfdReadData = 0; //clear key value            
  37. if(key_data != key_previ)
  38. {
  39. key_previ = key_data;
  40. if(key_data != 0)
  41. {
  42. #ifdef VFD_KEY_TEST
  43. psprintf(RegionValStr[REGION1], "KEY %02d F:%d", key_data,
  44. vfd_keycode[key_data - 1]);
  45. PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
  46. #else
  47. if((Is_JPEG_SlideMode()) && (vfd_keycode[key_data - 1] == IRC_PAUSE))
  48. {
  49. //Jeff 20020523
  50. bJpgVFDPause = 1;
  51. }
  52. else if((Is_JPEG_SlideMode()) &&
  53. ((vfd_keycode[key_data - 1] == IRC_PLAY) ||
  54. (vfd_keycode[key_data - 1] == IRC_PLAY_SELECT) ||
  55. (vfd_keycode[key_data - 1] == IRC_PLAY_RESUME)))
  56. {
  57. //bJpgVFDPause=0;
  58. bJpgVFDPause = 2; //Jeff 20020525
  59. }
  60. else if((Is_JPEG_SlideMode()) && //Jeff 20020527
  61. (vfd_keycode[key_data - 1] == IRC_PAUSEPLAY))
  62. {
  63. if(bJpgVFDPause == 0)
  64. {
  65. //bJpgVFDPause = 1;
  66. if(play_state == VCD_STATE_PAUSE) //nono 2-6-28 14:00
  67. bJpgVFDPause = 2;
  68. else
  69. bJpgVFDPause = 1;
  70. }
  71. else if(bJpgVFDPause == 1)
  72. {
  73. bJpgVFDPause = 2;
  74. }
  75. }
  76. else if(key_data<40)
  77. {
  78. extern UINT8 power_on;
  79. if(power_on == 2) //2-6-18 13:36 to avoid accepting a VFD_key in the beginning. 
  80. {
  81. power_on--;
  82. if(key_data != 1)
  83. {
  84. save_srn_start_t = get_rtc_val();
  85. call_ir_func(vfd_keycode[key_data - 1]);
  86. }
  87. }
  88. else
  89. {
  90. save_srn_start_t = get_rtc_val();
  91. call_ir_func(vfd_keycode[key_data - 1]);
  92. }
  93. }
  94. #endif
  95. }
  96. }
  97. vfd_state = VFD_WRITE;
  98. update_vfd_data();
  99. }
  100. else
  101. {
  102. switch (bWriteState)
  103. {
  104. case 2:
  105. //regs0->iop_data[VFD_CMD] = (0xa0 | count);
  106. regs0->iop_data[VFD_DAT0] = vfd_mem[count + 1] << 8 | vfd_mem[count];
  107. regs0->iop_data[VFD_DAT1] = vfd_mem[count + 3] << 8 | vfd_mem[count + 2];
  108. regs0->iop_data[VFD_DAT2] = vfd_mem[count + 5] << 8 | vfd_mem[count + 4];
  109. if(pt6554_flag==1)
  110. {
  111.      regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
  112.                       (FUN_VFD_WRITE | VFD_DAT_LEN1);
  113. pt6554_flag=2;
  114. }
  115. else if(pt6554_flag==2)
  116. {
  117.      regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
  118.                       (FUN_VFD_WRITE | VFD_DAT_LEN6);
  119. pt6554_flag=3;
  120. }
  121. else if(pt6554_flag==3)
  122. {
  123.      regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
  124.                       (FUN_VFD_WRITE | VFD_DAT_LEN3);
  125. pt6554_flag=4;
  126. }
  127. else if(pt6554_flag==4)
  128. {
  129.      regs0->iop_data[0] = (regs0->iop_data[0] & VFD_DATLEN_MASK) |
  130.                       (FUN_VFD_WRITE | VFD_DAT_LEN4);
  131. pt6554_flag=1;
  132. }
  133. /* transfer data size add by chichang 2001 6/6 */
  134. count += 6;
  135. if(count == VFD_DISPLAY_SIZE)
  136. {
  137. count = 0;
  138. vfd_state = VFD_READ;
  139. }
  140. bWriteState=2;
  141. break;
  142. default :
  143. bWriteState=2;
  144. }//write state control
  145. }
  146. #endif
  147. #endif //spi qsi
  148. }