⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_osd_rel.lst

📁 keil c51平台,此代码可用于学习TFT LCD 之TCON,SCALER,OSD,(本人自己修改)
💻 LST
📖 第 1 页 / 共 5 页
字号:
1049   2              {
1050   3                  ucOSD_Item_Index0   = 0;
1051   3                  ucOSD_Item_Index1   = 0;
1052   3              }
1053   2      
1054   2              if (0 == ucOSD_Item_Index1)
1055   2                  Show_Mode();                // No Slider on Page
1056   2              else
1057   2              {
1058   3                  switch (ucOSD_Item_Index0)
1059   3                  {
1060   4                  case PAGE1_ITEM_CONTRAST :
1061   4                      OSD_Slider(11, 2, 20, stGUD0.CONTRAST, 100, 0x61);
1062   4                      break;
1063   4                  case PAGE1_ITEM_BRIGHT :
1064   4      #if (BRIGHT_TYPE == GAIN)
1065   4                      OSD_Slider(11, 2, 20, stGUD0.BRIGHT, 100, 0x61);
1066   4      #endif
1067   4      #if (BRIGHT_TYPE == LIGHT)
                              OSD_Slider(11, 2, 20, fac_light, 100, 0x61);
              #endif
1070   4                      break;
1071   4                  case PAGE1_ITEM_GAMMA :
1072   4                      ucOSD_Item_Index1   = ((stGUD1.INPUT_SOURCE >> 3) & 0x03) + 1;
1073   4                      RTDCodeW((4 == ucOSD_Item_Index1) ? OSD_Temp_3 
1074   4                          : (3 == ucOSD_Item_Index1) ? OSD_Temp_2 
1075   4                          : (2 == ucOSD_Item_Index1) ? OSD_Temp_1 : OSD_Temp_0);
1076   4                      break;
1077   4                  }
1078   3              }
1079   2              break;
1080   2      
1081   2      #if (KEY_TYPE == KEY_5)
1082   2          case NOTIFY_AUTO_KEY :
1083   2      #endif
1084   2      
1085   2      #if (KEY_TYPE == KEY_6)
                  case NOTIFY_AUTO_KEY:
                      RTDCodeW(OSD_Reset);
                      RTDCodeW((unsigned char *)OSD_Autocfg_TABLE[stGUD1.FUNCTION & 0x07]);
                      RTDCodeW(OSD_Enable);
                      if (MODE_0640x0350x70HZ <= ucMode_Curr && MODE_0720x0400x70HZ >= ucMode_Curr)
                      {
                          unsigned char ucResult;
                          stMUD.CLOCK = 128;
                          Set_H_Position();
                          Set_Clock();
                          Save_MUD(ucMode_Curr);
C51 COMPILER V7.50   LCD_OSD_REL                                                           07/28/2008 16:10:58 PAGE 19  

                          ucResult    = Auto_Phase();
                          if (ERROR_SUCCEED == ucResult)      ucResult    = Auto_Position();
                          if (ERROR_INPUT == ucResult)
                          {
                              ucMode_Curr = MODE_OSDFORCE;
                              return;
                          }
                      }
                      else
                      {
                          if (ERROR_INPUT == Auto_Config())
                          {
                              ucMode_Curr = MODE_OSDFORCE;
                              return;
                          }
                      }
                      break;
              
                  case NOTIFY_EXIT_KEY :
              #endif          
1117   2              if (0 == ucOSD_Item_Index1)
1118   2              {
1119   3                  if (0 == ucOSD_Item_Index0)
1120   3                  {
1121   4                      ucOSD_Page_Index    = 0;
1122   4                      RTDCodeW(OSD_Reset);            
1123   4                  }
1124   3                  else
1125   3                  {
1126   4                      ucOSD_Item_Index0   = 0;
1127   4                      OSD_Window(1, (2 + ucOSD_Item_Index0), (2 + ucOSD_Item_Index0), 7, 23, 3, COLOR_CYAN);
1128   4                      Show_Mode();
1129   4                  }    
1130   3              }
1131   2              else
1132   2              {
1133   3                  ucOSD_Item_Index1   = 0;                
1134   3                  Show_Mode();        
1135   3              }
1136   2              break;
1137   2      
1138   2          default :
1139   2              // We don't handle other messages
1140   2              break;
1141   2          }
1142   1      }
1143          
1144          
1145          #define PAGE2_ITEM_NUM      6
1146          #define PAGE2_ITEM_NONE     0
1147          #define PAGE2_ITEM_POSH     1
1148          #define PAGE2_ITEM_POSV     2
1149          #define PAGE2_ITEM_SHARP    3
1150          #define PAGE2_ITEM_PHASE    4
1151          #define PAGE2_ITEM_CLOCK    5
1152          #define PAGE2_ITEM_EXIT     6
1153          
1154          void OSD_Proc2(unsigned char action)
1155          {
1156   1          switch (action)
1157   1          {
1158   2          case NOTIFY_ENTER_KEY :
C51 COMPILER V7.50   LCD_OSD_REL                                                           07/28/2008 16:10:58 PAGE 20  

1159   2              if (0 == ucOSD_Item_Index0)
1160   2              {
1161   3                  if (MODE_NOSIGNAL != ucMode_Curr && MODE_NOSUPPORT != ucMode_Curr)
1162   3                  {
1163   4                      // Select and highlight the first item
1164   4                      ucOSD_Item_Index0   = PAGE2_ITEM_POSH;
1165   4                      ucOSD_Item_Index1   = 0;
1166   4                      OSD_Window(1, (2 + ucOSD_Item_Index0), (2 + ucOSD_Item_Index0), 7, 23, 7, COLOR_CYAN);
1167   4                  }
1168   3              }
1169   2              else
1170   2              {
1171   3                  if (ucOSD_Item_Index1)
1172   3                  {
1173   4                      ucOSD_Item_Index1   = 0;    // Leave the item
1174   4                      Show_Mode();
1175   4                  }
1176   3                  else
1177   3                  {
1178   4                      if (PAGE2_ITEM_EXIT == ucOSD_Item_Index0)
1179   4                      {
1180   5                          // De-select the page item and disable the hightlight window
1181   5                          ucOSD_Item_Index0   = 0;
1182   5                          ucOSD_Item_Index1   = 0;
1183   5      
1184   5                          // Disable highlight window
1185   5                          OSD_Window(1, (2 + PAGE2_ITEM_EXIT), (2 + PAGE2_ITEM_EXIT), 7, 23, 3, COLOR_CYAN);
1186   5                      }
1187   4                      else if (MODE_NOSIGNAL != ucMode_Curr && MODE_NOSUPPORT != ucMode_Curr)
1188   4                      {
1189   5                          if (SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07) || PAGE2_ITEM_SHARP == ucOSD_Item_Index
             -0)
1190   5                          {
1191   6                              switch (ucOSD_Item_Index0)
1192   6                              {
1193   7                              case PAGE2_ITEM_POSH :
1194   7                                  ucOSD_Item_Index1   = 1;    // Enter the item
1195   7                                  OSD_Slider(11, 2, 20, ucH_Max_Margin - stMUD.H_POSITION, ucH_Max_Margin - ucH_
             -Min_Margin, 0x61);
1196   7                                  break;
1197   7                              case PAGE2_ITEM_POSV :
1198   7                                  ucOSD_Item_Index1   = 1;    // Enter the item
1199   7                                  OSD_Slider(11, 2, 20, (unsigned int)(stMUD.V_POSITION - ucV_Min_Margin) * 50 /
             - (128 - ucV_Min_Margin), 100, 0x61);
1200   7                                  break;
1201   7                              case PAGE2_ITEM_SHARP :
1202   7                                  ucOSD_Item_Index1   = stGUD1.FILTER + 1;
1203   7                                  RTDCodeW((1 == ucOSD_Item_Index1) ? OSD_Sharp_1 : (2 == ucOSD_Item_Index1) ? O
             -SD_Sharp_2
1204   7                                      : (3 == ucOSD_Item_Index1) ? OSD_Sharp_3 : (4 == ucOSD_Item_Index1) ? OSD_
             -Sharp_4 : OSD_Sharp_5);
1205   7                                  break;
1206   7                              case PAGE2_ITEM_PHASE :
1207   7                                  ucOSD_Item_Index1   = 1;    // Enter the item
1208   7                                  OSD_Slider(11, 2, 20, (stMUD.PHASE & 0x7c) >> 2, 31, 0x61);
1209   7                                  break;
1210   7                              case PAGE2_ITEM_CLOCK :
1211   7                                  ucOSD_Item_Index1   = 1;    // Enter the item
1212   7                                  OSD_Slider(11, 2, 20, stMUD.CLOCK - 28, 200, 0x61);
1213   7                                  break;
1214   7                              }
1215   6                          }
C51 COMPILER V7.50   LCD_OSD_REL                                                           07/28/2008 16:10:58 PAGE 21  

1216   5                      }
1217   4                  }
1218   3              }
1219   2              break;
1220   2      
1221   2          case NOTIFY_RIGHT_KEY :     // Right-key to Increase; Left-key to Decrease
1222   2          case NOTIFY_LEFT_KEY :
1223   2          case NOTIFY_IR_RIGHT_KEY :
1224   2          case NOTIFY_IR_LEFT_KEY :
1225   2              if (ucOSD_Item_Index1)
1226   2              {
1227   3                  switch (ucOSD_Item_Index0)
1228   3                  {
1229   4                  case PAGE2_ITEM_POSH :
1230   4                      if (NOTIFY_RIGHT_KEY == action || NOTIFY_IR_RIGHT_KEY == action)
1231   4                      {
1232   5                          if (ucH_Min_Margin >= stMUD.H_POSITION)     break;
1233   5      
1234   5                          if (KEY_TURBO_ENABLE > ucKey_Issued)
1235   5                              stMUD.H_POSITION    = stMUD.H_POSITION > ucH_Min_Margin ? stMUD.H_POSITION - 1 : u
             -cH_Min_Margin;
1236   5                          else
1237   5                              stMUD.H_POSITION    = stMUD.H_POSITION > (ucH_Min_Margin + 2) ? stMUD.H_POSITION -
             - 3 : ucH_Min_Margin;
1238   5                      }
1239   4                      else
1240   4                      {
1241   5                          if (ucH_Max_Margin <= stMUD.H_POSITION)     break;
1242   5      
1243   5                          if (KEY_TURBO_ENABLE > ucKey_Issued)
1244   5                              stMUD.H_POSITION    = stMUD.H_POSITION < ucH_Max_Margin ? stMUD.H_POSITION + 1 : u
             -cH_Max_Margin;
1245   5                          else
1246   5                              stMUD.H_POSITION    = stMUD.H_POSITION < (ucH_Max_Margin - 2) ? stMUD.H_POSITION +
             - 3 : ucH_Max_Margin;
1247   5                      }                    
1248   4                      OSD_Slider(11, 2, 20, ucH_Max_Margin - stMUD.H_POSITION, ucH_Max_Margin - ucH_Min_Margin, 
             -0x61);
1249   4                      Set_H_Position();
1250   4                      Save_MUD(ucMode_Curr);
1251   4                      break;
1252   4                  case PAGE2_ITEM_POSV :
1253   4                      if (NOTIFY_RIGHT_KEY == action || NOTIFY_IR_RIGHT_KEY == action)
1254   4                      {
1255   5                          if ((unsigned int)256 - ucV_Min_Margin <= stMUD.V_POSITION)     break;
1256   5      
1257   5                          stMUD.V_POSITION    += 1;
1258   5                      }
1259   4                      else
1260   4                      {
1261   5                          if (ucV_Min_Margin >= stMUD.V_POSITION)     break;
1262   5      
1263   5                          stMUD.V_POSITION    -= 1;
1264   5                      }                
1265   4                      OSD_Slider(11, 2, 20, (unsigned int)(stMUD.V_POSITION - ucV_Min_Margin) * 50 / (128 - ucV_
             -Min_Margin), 100, 0x61);
1266   4                      Set_V_Position();
1267   4                      Save_MUD(ucMode_Curr);
1268   4                      break;
1269   4                  case PAGE2_ITEM_SHARP :
1270   4                      if (NOTIFY_RIGHT_KEY == action || NOTIFY_IR_RIGHT_KEY == action)
1271   4                      {
C51 COMPILER V7.50   LCD_OSD_REL                                                           07/28/2008 16:10:58 PAGE 22  

1272   5                          if (5 <= ucOSD_Item_Index1)     break;
1273   5      
1274   5                          ucOSD_Item_Index1   = ucOSD_Item_Index1 + 1;
1275   5                      }
1276   4                      else
1277   4                      {
1278   5                          if (1 >= ucOSD_Item_Index1)     break;
1279   5      
1280   5                          ucOSD_Item_Index1   = ucOSD_Item_Index1 - 1;
1281   5                      }
1282   4      
1283   4                      RTDCodeW((1 == ucOSD_Item_Index1) ? OSD_Sharp_1 : (2 == ucOSD_Item_Index1) ? OSD_Sharp_2
1284   4                          : (3 == ucOSD_Item_Index1) ? OSD_Sharp_3 : (4 == ucOSD_Item_Index1) ? OSD_Sharp_4 : OS
             -D_Sharp_5);
1285   4                      
1286   4                      stGUD1.FILTER    = ucOSD_Item_Index1 - 1;
1287   4                      Sharpness();
1288   4                      Save_GUD1();
1289   4                      break;
1290   4                  case PAGE2_ITEM_PHASE :
1291   4                      stMUD.PHASE     &= 0x7c;
1292   4                      if (NOTIFY_RIGHT_KEY == action || NOTIFY_IR_RIGHT_KEY == action)
1293   4                      {
1294   5                          if (0x7c <= stMUD.PHASE)    break;
1295   5      
1296   5                          stMUD.PHASE += 4;
1297   5                      }
1298   4                      else
1299   4                      {
1300   5                          if (0x00 == stMUD.PHASE)    break;
1301   5      
1302   5                          stMUD.PHASE -= 4;
1303   5                  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -