📄 initio.c
字号:
//patch4.4@richie@dsi end
//printf("G_Card_Type=%bx\n",G_Card_Type);
//printf("G_ucStorageType=%bx\n",G_ucStorageType);
}
//-----------------------------------------------------------------------------
//INITIO_SoftwareReset
//-----------------------------------------------------------------------------
void INITIO_SoftwareReset(void) USING_0
/*++
Routine Description:
reset system by code
Arguments:
none
Return Value:
none
--*/
{
}
//-----------------------------------------------------------------------------
//INITIO_SetCameraSize
//-----------------------------------------------------------------------------
void INITIO_SetCameraSize(USHORT cameraMode) USING_0 //cch
/*++
Routine Description:
set sensor width ,height ,Hsubsample ,Vsubsample
Arguments:
cameraMode : 2 :dsc , 3:vido clip mode : 4: Pc camera
Return Value:
none
--*/
{
USHORT k;
//version4.0 richie@ps0503
UCHAR revID;
PUCHAR ProductDescriptor;
PUCHAR PcCameraSizeMapping;
G_Interlace_Enable= 0;
//version4.0 richie@ps0503 begin
L2_ReadRevID(&revID);
//printf("ID VERSION = %bx\n",revID);
if (revID > 1)
{
ProductDescriptor = ProductDescriptor2;
PcCameraSizeMapping = PcCameraSizeMapping2;
}
else
{
ProductDescriptor = ProductDescriptor1;
PcCameraSizeMapping = PcCameraSizeMapping1;
}
//version4.0 richie@ps0503 end
//version4.0 richie@ps0503
// DbgPrint("INITIO_SetCameraSize: DscIndex = %bx, ClipIndex = %bx, PccamIndex = %bx\n", G_ucDscIndex, G_ucClipIndex, G_ucPccameraIndex);
if ( cameraMode == K_MODE_DSC ) //DSC
{
k = 4 + (ProductDescriptor[3 + G_ucDscIndex] - 1)*6;
}
else if ( cameraMode == K_MODE_VIDEOCLIP ) //videoclip
{
k = 4 + (ProductDescriptor[3 + 8 * 1 + G_ucClipIndex] - 1)*6;
}
else if ( cameraMode == K_MODE_PCCAM ) // Pccamera cch@10/24
{
//version4.0 richie@ps0503 begin
//version4.0 richie@ps0503
k = 4 + (ProductDescriptor[3 + 8*2 + G_ucPccameraIndex] - 1)*4;
G_usPostJpegWidth = ((USHORT)PcCameraSizeMapping[k] << 8) | ((USHORT)PcCameraSizeMapping[k + 1]);
G_usPostJpegHeight = ((USHORT)PcCameraSizeMapping[k + 2] << 8) | ((USHORT)PcCameraSizeMapping[k + 3]);
L1_InitPCCam();
//version4.0 richie@ps0503 end
}
else if ( cameraMode == K_MODE_IDLE ) // Idle cch@10/24
{
k = 0;
}
//cytsai@0131
G_Image_SensorWidth = (USHORT) K_SENSOR_CaptureWidth; //width of capture mode
G_Image_SensorHeight = (USHORT) K_SENSOR_CaptureHeight; //height of capture mode
G_Image_HSubSample = (UCHAR) 0;
G_Image_VSubSample = (UCHAR) 0;
//DbgPrint("INITIO_SetCameraSize: Width = %x, Height = %x, HSubSample = %bx, VSubSample = %bx\n", G_Image_SensorWidth, G_Image_SensorHeight, G_Image_HSubSample, G_Image_HSubSample);
}
//-----------------------------------------------------------------------------
//INITIO_GetCameraSizeIndex //cch
//-----------------------------------------------------------------------------
void INITIO_GetCameraSizeIndex(USHORT index) USING_1
/*++
Routine Description:
Arguments:
none
Return Value:
none
--*/
{
switch (index)
{
case 0x0001: //Get Preview Size Index
G_pucCtrlDataPointer[0] = G_ucDscIndex;
break;
case 0x0002: //Get DSC Size Index
G_pucCtrlDataPointer[0] = G_ucDscIndex;
break;
case 0x0003: //Get Video Clip Size Index
G_pucCtrlDataPointer[0] = G_ucClipIndex;
break;
case 0x0004: //Get PC camera Index
G_pucCtrlDataPointer[0] = G_ucPccameraIndex;
break;
case 0x0005: //Get Playback Index
G_pucCtrlDataPointer[0] = G_ucDscIndex;
break;
case 0x0011: //Get Preview Size Index Max
G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
break;
case 0x0012: //Get DSC Size Index Max
G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
break;
case 0x0013: //Get Video Clip Size Index Max
G_pucCtrlDataPointer[0] = G_ucClipIndexMax;
break;
case 0x0014: //Get PC camera Index Max
G_pucCtrlDataPointer[0] = G_ucPccameraIndexMax;
break;
case 0x0015: //Get Playback Index
G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
break;
default:
break;
}
}
//-----------------------------------------------------------------------------
//INITIO_SetCameraSizeIndex //cch
//-----------------------------------------------------------------------------
void INITIO_SetCameraSizeIndex(USHORT index) USING_1
/*++
Routine Description:
Arguments:
none
Return Value:
none
--*/
{
switch (index)
{
case 0x0001: //Set Preview Size Index
G_ucDscIndex = G_pucCtrlDataPointer[0];
break;
case 0x0002: //Set DSC Size Index
G_ucDscIndex = G_pucCtrlDataPointer[0];
break;
case 0x0003: //Set Video Clip Size Index
G_ucClipIndex = G_pucCtrlDataPointer[0];
break;
case 0x0004: //Set PC camera Index
G_ucPccameraIndex = G_pucCtrlDataPointer[0];
break;
case 0x0005: //St Playback Index
G_ucDscIndex = G_pucCtrlDataPointer[0];
break;
case 0x0011: //St Preview Size Index Max
G_ucDscIndexMax = G_pucCtrlDataPointer[0];
break;
case 0x0012: //Set DSC Size Index Max
G_ucDscIndexMax = G_pucCtrlDataPointer[0];
break;
case 0x0013: //Set Video Clip Size Index Max
G_ucClipIndexMax = G_pucCtrlDataPointer[0];
break;
case 0x0014: //Set PC camera Index Max
G_ucPccameraIndexMax = G_pucCtrlDataPointer[0];
break;
case 0x0015: //Set Playback Index Max
G_ucDscIndexMax = G_pucCtrlDataPointer[0];
break;
default:
break;
}
}
//-----------------------------------------------------------------------------
//INITIO_GetProductInfo
//-----------------------------------------------------------------------------
void INITIO_GetProductInfo(void) USING_0
/*++
Routine Description:
get product infomation from infodata.h
Arguments:
none
Return Value:
none
--*/
{
UCHAR i;
//version4.0 richie@ps0503
UCHAR revID;
PUCHAR ProductDescriptor;
G_ucSensorType = 0;
G_ucSensorSize = 0;
G_ucDscIndex = 0;
G_ucClipIndex = 0;
G_ucPccameraIndex = 0; //cch
G_ucDscIndexMax = 0;
G_ucClipIndexMax = 0;
G_ucPccameraIndexMax = 0; //cch@10/15
//version4.0 richie@ps0503 begin
L2_ReadRevID(&revID);
if (revID > 1)
{
ProductDescriptor = ProductDescriptor2;
}
else
{
ProductDescriptor = ProductDescriptor1;
}
//version4.0 richie@ps0503 end
G_pucCtrlDataPointer = G_ucCtrlData;
for (i = 0; i < K_ProductDescriptorSize; i++)
G_pucCtrlDataPointer[i] = (UCHAR) ProductDescriptor[i];
G_ucSensorType = G_pucCtrlDataPointer[2];
G_ucSensorSize = G_pucCtrlDataPointer[3];
G_ucDscIndex = G_pucCtrlDataPointer[3+8*1];
G_ucClipIndex = G_pucCtrlDataPointer[3+8*2];
G_ucPccameraIndex = G_pucCtrlDataPointer[3+8*3];
//DbgPrint("INITIO_GetProductInfo: DscIndex = %bx, ClipIndex = %bx, PccamIndex = %bx\n", G_ucDscIndex, G_ucClipIndex, G_ucPccameraIndex);
i = 0;
G_ucDscIndexMax=0;
while ( i < 8)
{
if ( G_pucCtrlDataPointer[4+i] != 0 )
{
G_ucDscIndexMax++;
}
else
{
break;
}
i++;
}
i = 0;
G_ucClipIndexMax=0;
while ( i < 8)
{
if ( G_pucCtrlDataPointer[12+i] != 0 )
{
G_ucClipIndexMax++;
}
else
{
break;
}
i++;
}
i = 0;
G_ucPccameraIndexMax=0;
while ( i < 8)
{
if ( G_pucCtrlDataPointer[20+i] != 0 )
{
G_ucPccameraIndexMax++;
}
else
{
break;
}
i++;
}
if ( G_ucClipIndexMax > 7 )
G_ucClipIndexMax = 7;
if ( G_ucDscIndexMax > 7 )
G_ucDscIndexMax = 7;
if ( G_ucPccameraIndexMax > 7 )
G_ucPccameraIndexMax = 7;
}
//-----------------------------------------------------------------------------
//INITIO_GetInformation
//-----------------------------------------------------------------------------
void INITIO_GetInformation(USHORT infoType) USING_1
/*++
Routine Description:
get system information
Arguments:
none
Return Value:
none
--*/
{
USHORT i = infoType;
//version4.0 richie@ps0503
UCHAR revID;
PUCHAR ProductDescriptor;
PUCHAR PcCameraSizeMapping;
UCHAR PcCameraSizeMappingSize;
//version4.0 richie@ps0503 begin
L2_ReadRevID(&revID);
if (revID > 1)
{
ProductDescriptor = ProductDescriptor2;
PcCameraSizeMapping = PcCameraSizeMapping2;
PcCameraSizeMappingSize = K_PcCameraSizeMapping2;
}
else
{
ProductDescriptor = ProductDescriptor1;
PcCameraSizeMapping = PcCameraSizeMapping1;
PcCameraSizeMappingSize = K_PcCameraSizeMapping1;
}
//version4.0 richie@ps0503 end
switch (infoType)
{
case 0x0000: //Get ProductDescriptor information
for (i = 0; i < K_ProductDescriptorSize; i++)
G_pucCtrlDataPointer[i] = (UCHAR) ProductDescriptor[i];
break;
case 0x0001: //Get SensorSizeInformation
//version4.0 richie@ps0503
for (i = 0; i < PcCameraSizeMappingSize; i++)
G_pucCtrlDataPointer[i] = PcCameraSizeMapping[i];
break;
case 0x0002: //Get DscSizeMapping Information
for (i = 2; i < K_DscSizeMapping; i++)
G_pucCtrlDataPointer[i] = DscSizeMapping[i];
break;
case 0x0064: //Get Storage information
i = DOS_GetClusterSize();
i /= 512;
G_pucCtrlDataPointer[0] = i;
G_pucCtrlDataPointer[1] = i >> 8;
for (i = 2; i < K_CtrlDataSize; i++)
G_pucCtrlDataPointer[i] = i;
//Card_GetInformation(G_pucCtrlDataPointer); // @WYEO, 1008
break;
//version4.0 richie@0514
case 0x0065: //Get Storage information compiler error
G_pucCtrlDataPointer[48] = 0; //cch@02/26
Card_GetInformation(&(G_pucCtrlDataPointer[0])); // @HISWYEO
break;
default:
break;
}
}
//-----------------------------------------------------------------------------
//L2_TurnOnOffDisplayFrist
//-----------------------------------------------------------------------------
void L2_TurnOnOffDisplayFrist(void) USING_0
{
UCHAR tmp;
tmp = MemStretch;
MemStretch = 0x01;
if ((XBYTE[0x2001] & 0x01) > 0) //Make sure TV output is enabled
{
while ((XBYTE[0x2DA0] & 0x08) > 0); //wait TV VD low
while ((XBYTE[0x2DA0] & 0x08) == 0); //wait TV VD high
}
//Joe@2003.3.5 13:43 add end
XBYTE[0x2001] = 0x05;
XBYTE[0x2D01] = XBYTE[0x2D01] | 0x10;
XBYTE[0x2013] = XBYTE[0x2013] | 0x18; // start the 27 and 13.5MHz source
XBYTE[0x2D73]&= 0xfb; //wendy@2004/8/5
DELAY_1ms();
XBYTE[0x2D73]|= 0x04; //wendy@2004/8/5
#if(TURNKEY_OPTION == 1)
L2_SetGPIOBit(15,0); //LCD_BACKLIGHT
#else
L2_SetGPIOBit(16,1); //Back light(5V,18V)
#endif
MemStretch=tmp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -