00001 #include "includes.h"
00002
00003 #define DELAYTIME 1000
00004 #define TIMEOUT (15625*10)
00005
00006 int F_VgaInit(void){
00007
00008
00009
00010
00011 int var,ret=0;
00012 char i;
00013
00014
00015 var = rLCDCON1;
00016 rLCDCON1 = rLCDCON1 & ~LCD_EN;
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 F_IicWrite(0xec,4,0x20);
00032
00033 F_IicWrite(0xec,7,0x8c);
00034
00035 F_IicWrite(0xec,14,0x1b);
00036
00037 F_IicWrite(0xec,13,0x03);
00038 do {
00039
00040 F_IicRead(0xec,4,&i);
00041 if (i != 0x20) { ret = -1; break; }
00042
00043 F_IicRead(0xec,7,&i);
00044 if (i != 0x8c) { ret = -1; break; }
00045
00046 F_IicRead(0xec,14,&i);
00047 if (i != 0x1b) ret = -1;
00048 } while(0);
00049 rLCDCON1 = var;
00050 return ret;
00051 }
00052 int F_TvInit(int mode){
00053 char i;
00054
00055 rGPEUP |= 0xc000;
00056 rGPECON = (rGPECON&~0xf0000000) | 0xa0000000;
00057 rIICCON = 0xaf;
00058 rIICADD = rIICSTAT = 0x10;
00059 if (mode == 1) {
00060 myprintf("\n\rinitial tv mode 640480.");
00061 F_IicWrite(0xec,0,0x42);
00062 }
00063 if (mode == 2) {
00064 myprintf("\n\rinitial tv mode 640400.");
00065 F_IicWrite(0xec,0,0x61);
00066 }
00067 F_IicWrite(0xec,4,0x00);
00068 F_IicWrite(0xec,7,0x64);
00069 F_IicWrite(0xec,8,0x01);
00070 F_IicWrite(0xec,10,0x30);
00071 F_IicWrite(0xec,11,0x20);
00072 F_IicWrite(0xec,9,0x69);
00073 F_IicWrite(0xec,14,0x0a);
00074 F_IicWrite(0xec,16,0x00);
00075 F_IicWrite(0xec,61,0x00);
00076 F_IicWrite(0xec,1,0x08);
00077 F_IicRead(0xec,9,&i);
00078 if (i != 0x69) return -1;
00079 F_IicRead(0xec,14,&i);
00080 if (i != 0x0a) return -1;
00081 F_IicRead(0xec,16,&i);
00082 if (i != 0x00) return -1;
00083 F_IicRead(0xec,61,&i);
00084 if (i != 0x00) return -1;
00085 F_IicRead(0xec,0,&i);
00086 if (i != 0x42) return -1;
00087 F_IicRead(0xec,4,&i);
00088 if (i != 0x00) return -1;
00089 F_IicRead(0xec,7,&i);
00090 if (i != 0x64) return -1;
00091 F_IicRead(0xec,8,&i);
00092 if (i != 0x01) return -1;
00093 F_IicRead(0xec,10,&i);
00094 if (i != 0x30) return -1;
00095 F_IicRead(0xec,11,&i);
00096 if (i != 0x20) return -1;
00097 return 0;
00098 }
00099 void F_VgaPlay(void){
00100 F_LcdBufferClear();
00101 F_LcdInit();
00102 if (F_VgaInit()!=0){
00103 myprintf("\n\r vga initialize error!");
00104 return;
00105 }
00106 myprintf("\n\rvga initial ok!");
00107 }
00108