?? gps.c.bak
字號(hào):
0x00,0x0F,0xFF,0xF0,0x0F,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x03,0xFF,
0xFF,0xFE,0x7F,0xFF,0xFF,0xC1,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xF8,0x0F,0xE0,0x7F,
0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x3C,0x3C,0x00,0x7F,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0E,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x07,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x03,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
INT8U bdata SfrByte1;
sbit SB00 = SfrByte1 ^ 0;
sbit SB01 = SfrByte1 ^ 1;
sbit SB02 = SfrByte1 ^ 2;
sbit SB03 = SfrByte1 ^ 3;
sbit SB04 = SfrByte1 ^ 4;
sbit SB05 = SfrByte1 ^ 5;
sbit SB06 = SfrByte1 ^ 6;
sbit SB07 = SfrByte1 ^ 7;
static INT8U Data_WrBuff[128];
/*******************************************************************************
write0808
說(shuō) 明: 在NX25P40 0x38000處開(kāi)始寫(xiě)入0808的點(diǎn)陣字庫(kù)
********************************************************************************/
void write0808(void)
{
INT8U i, j;
INT32U addr;
INT8U code *data p1;
p1 = AsciiCharArray;
addr = 0x38000;
for(i=0; i<9; i++)
{
for(j=0; j<128; j++)
{
rData_Buff.chBuff[j]= *p1++;
}
SPI_Program(addr, 128, rData_Buff.chBuff);
addr += 128;
delay_10ms();
}
}
/*******************************************************************************
writebmp
說(shuō) 明: 在NX25P40 0x38500處開(kāi)始寫(xiě)入開(kāi)機(jī)界面點(diǎn)陣
********************************************************************************/
void writebmp(void)
{
INT8U i, j;
INT32U addr;
INT8U code *data p1;
p1 = stp;
addr = 0x38500;
for(i=0; i<19; i++)
{
for(j=0; j<128; j++)
{
rData_Buff.chBuff[j]= *p1++;
}
SPI_Program(addr, 128, rData_Buff.chBuff);
addr += 128;
delay_10ms();
}
}
/*******************************************************************************
writebmp
說(shuō) 明: 在NX25P40 0x39000處開(kāi)始寫(xiě)入0816點(diǎn)陣字庫(kù)
********************************************************************************/
INT8U ConvertXAChar(INT8U da)
{
SfrByte1 = da;
if(!(SB00 ^ SB07)); else { SB00 = ~SB00;SB07 = ~SB07;}
if(!(SB01 ^ SB06)); else { SB01 = ~SB01;SB06 = ~SB06;}
if(!(SB02 ^ SB05)); else { SB02 = ~SB02;SB05 = ~SB05;}
if(!(SB03 ^ SB04)); else { SB03 = ~SB03;SB04 = ~SB04;}
return(SfrByte1);
}
void write0816(void)
{
INT8U i, j, ch;
INT32U addr;
INT8U code *data p1;
p1 = 0x6000;
addr = 0x39000;
for(i=0; i<16; i++)
{
for(j=0; j<128; j++)
{
ch = *p1++;
rData_Buff.chBuff[j]= ConvertXAChar(ch);
}
SPI_Program(addr, 128, rData_Buff.chBuff);
addr += 128;
delay_10ms();
}
}
/*******************************************************************************
chUART_Process
說(shuō) 明: 處理接收的數(shù)據(jù),如果收到正確的數(shù)據(jù)返回0,如果重復(fù)收到上次的數(shù)據(jù),返回1
否則返回2
********************************************************************************/
unsigned char chUART_Process(void)
{
unsigned char i;
unsigned char *pchTemp;
recUART rUART_Temp;
unsigned char chRece_Count;
chRece_Count = (unsigned char)nRece_Count;
EA=0;
rUART_Temp = rUARTRece;
EA=1;
pchTemp = (unsigned char *)rUART_Temp.chBuff;
if(pchTemp[0]+pchTemp[1] == 0xFF)
{
if(chRece_Count == pchTemp[0]) //接收到正確的塊
{
pchTemp += 2;
for(i=0; i<128; i++)
{
rData_Buff.chBuff[i]= *pchTemp++;
}
return 0;
}
else if(chRece_Count == pchTemp[0]+1)
return 1;
else
return 2;
}
else
return 2;
}
/*******************************************************************************
vUART_TimeOut_Nak
說(shuō) 明: 準(zhǔn)備完畢,請(qǐng)求開(kāi)始傳輸,如果上面沒(méi)有準(zhǔn)備好,每隔5S請(qǐng)求一次
********************************************************************************/
void vUART_TimeOut_Nak(void)
{
vSoftTimer_Run(UART_NAK, UART_ACK_TIME, vUART_TimeOut_Nak);
vGPS_SendChar(NAK);
}
/*******************************************************************************
vUART_TimeOut_Ack
說(shuō) 明: 收到正確的數(shù)據(jù)后,啟動(dòng)本定時(shí)器,在設(shè)定的時(shí)間內(nèi)沒(méi)有收到下幀數(shù)據(jù),
再次發(fā)起請(qǐng)求
********************************************************************************/
void vUART_TimeOut_Ack(void)
{
vSoftTimer_Run(UART_ACK, UART_ACK_TIME, vUART_TimeOut_Ack);
vGPS_SendChar(ACK);
}
/*******************************************************************************
vUART_Execute
說(shuō) 明: 如果收到正確的數(shù)據(jù),寫(xiě)入NX25P40,如果接收數(shù)據(jù)完畢,寫(xiě)入0808,0816,開(kāi)機(jī)界面
********************************************************************************/
void vUART_Execute(void)
{
INT8U i, chTemp;
INT32U addr, j;
if(chRece_Over == 0x01) //接收完畢所有數(shù)據(jù)
{
vGPS_SendChar(ACK);
delay_1sec();
vGPS_SendChar(ACK);
GraphStr0816(1,0, "WRITE0808",1,10);
write0808(); //寫(xiě)入8×8點(diǎn)陣
GraphStr0816(1,0, "WRITE0816",1,10); //寫(xiě)入8×16點(diǎn)陣
write0816();
writebmp(); //寫(xiě)入開(kāi)機(jī)界面
chRece_Over = 2; //寫(xiě)完NX25P40后,執(zhí)行程序檢查是否正確
}
if(chBlock_Over == 0x01)
{
EA = 0;
chBlock_Over = 0;
EA = 1;
////////////////////////////////////////
if(chRece_Flag == 0) //如果這是收到的第一幀數(shù)據(jù),執(zhí)行以下操作
{
chRece_Flag = 2;
GraphStr0816(1,0, "ERASE..",1,7);
SPI_EraseBulk(); //擦除EPROM
vSoftTimer_Stop(UART_NAK); //如果收到數(shù)據(jù)了,說(shuō)明傳輸開(kāi)始了,此時(shí)
//不需要在次申請(qǐng)傳輸開(kāi)始。
}
///////////////////////////////////////
vSoftTimer_Run(UART_ACK, UART_ACK_TIME, vUART_TimeOut_Ack); //等待下一幀數(shù)據(jù)
chTemp = chUART_Process();
if(chTemp == 0x00)
{
GraphStr0816(1,0, "WRITE..",1,7);
//顯示接收到的數(shù)據(jù)幀
j = nRece_Count;
i = j/1000 + 0x30;
GraphChar0816(3,1,i,1);
i = j%1000/100 + 0x30;
GraphChar0816(3,2,i,1);
i = j%100/10 + 0x30;
GraphChar0816(3,3,i,1);
i = j%10 + 0x30;
GraphChar0816(3,4,i,1);
//寫(xiě)入數(shù)據(jù)
addr = (INT32U)(nRece_Count-1) * 128L;
SPI_Program(addr, 128, rData_Buff.chBuff);
vGPS_SendChar(ACK);
nRece_Count++;
}
else if(chTemp == 0x01)
{
vGPS_SendChar(ACK);
rData_Buff.nLen = 0;
}
else if(chTemp == 0x02)
{
vGPS_SendChar(NAK);
rData_Buff.nLen = 0;
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -