summaryrefslogtreecommitdiffstats
path: root/progP16.c
diff options
context:
space:
mode:
Diffstat (limited to 'progP16.c')
-rw-r--r--progP16.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/progP16.c b/progP16.c
index 54d6727..be9f5a0 100644
--- a/progP16.c
+++ b/progP16.c
@@ -419,7 +419,7 @@ struct ID16{
{0x3106,"16F17176\r\n",0},
};
-void PIC16_ID(int id)
+static bool PIC16_ID(int id)
{
char s[64];
int i;
@@ -427,16 +427,16 @@ void PIC16_ID(int id)
if(PIC16LIST[i].revmask&&(id>>5)==PIC16LIST[i].id){ //id + rev in same location
sprintf(s,PIC16LIST[i].device,id&PIC16LIST[i].revmask);
PrintMessage(s);
- return;
+ return true;
}
else if(!PIC16LIST[i].revmask&&id==PIC16LIST[i].id){ //id separate from rev
sprintf(s,PIC16LIST[i].device);
PrintMessage(s);
- return;
+ return true;
}
}
- sprintf(s,"%s",strings[S_nodev]); //"Unknown device\r\n");
- PrintMessage(s);
+ PrintMessage(strings[S_nodev]); //"Unknown device\r\n");
+ return false;
}
void DisplayCODE16F(int size){
@@ -716,7 +716,7 @@ void Read16Fxxx(int dim,int dim2,int dim3,int vdd)
}
PrintMessage1(strings[S_DevID],memCODE_W[0x2006]); //"DevID: 0x%04X\r\n"
if(memCODE_W[0x2005]<0x3FFF) PrintMessage1(strings[S_DevREV],memCODE_W[0x2005]); //"DevREV: 0x%04X\r\n"
- PIC16_ID(memCODE_W[0x2006]);
+ if (!PIC16_ID(memCODE_W[0x2006])) return;
PrintMessage1(strings[S_ConfigWord],memCODE_W[0x2007]); //"Configuration word: 0x%04X\r\n"
if(dim3>8){
PrintMessage1(strings[S_Config2Cal1],memCODE_W[0x2008]); //"Config2 or Cal1: 0x%04X\r\n"
@@ -1048,7 +1048,7 @@ void Read16F1xxx(int dim,int dim2,int dim3,int options)
}
PrintMessage1(strings[S_DevID],memCODE_W[0x8006]); //"DevID: 0x%04X\r\n"
if(memCODE_W[0x8005]<0x3FFF) PrintMessage1(strings[S_DevREV],memCODE_W[0x8005]); //"DevREV: 0x%04X\r\n"
- PIC16_ID(memCODE_W[0x8006]);
+ if (!PIC16_ID(memCODE_W[0x8006])) return;
PrintMessage2(strings[S_ConfigWordX],1,memCODE_W[0x8007]); //"Configuration word %d: 0x%04X\r\n"
PrintMessage2(strings[S_ConfigWordX],2,memCODE_W[0x8008]); //"Configuration word %d: 0x%04X\r\n"
if((options&0xC)==0&&F18x==0){ //2 config + 2/3 calib words
@@ -1404,7 +1404,7 @@ void Read16F18xxx(int dim,int dim2,int dim3,int options)
}
PrintMessage1(strings[S_DevID],memCODE_W[0x8006]); //"DevID: 0x%04X\r\n"
if(memCODE_W[0x8005]<0x3FFF) PrintMessage1(strings[S_DevREV],memCODE_W[0x8005]); //"DevREV: 0x%04X\r\n"
- PIC16_ID(memCODE_W[0x8006]);
+ if (!PIC16_ID(memCODE_W[0x8006])) return;
for(i=0;i<5;i++){
PrintMessage2(strings[S_ConfigWordX],i+1,memCODE_W[0x8007+i]); //"Configuration word %d: 0x%04X\r\n"
}
@@ -1538,7 +1538,7 @@ void Write12F6xx(int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
calib1=(bufferI[z+1]<<8)+bufferI[z+2];
if(calib1<0x3fff){
@@ -1930,7 +1930,7 @@ void Write16F8x (int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_ConfigWord],config); //"Config word: 0x%04X\r\n"
@@ -2294,7 +2294,7 @@ void Write16F62x (int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_ConfigWord],config); //"Config word: 0x%04X\r\n"
@@ -2629,7 +2629,7 @@ void Write12F62x(int dim,int dim2)
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+1];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
//****************** erase memory ********************
PrintMessage(strings[S_StartErase]); //"Erase ... "
j=0;
@@ -2940,7 +2940,7 @@ void Write16F87x (int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_ConfigWord],config); //"Config word: 0x%04X\r\n"
@@ -3324,7 +3324,7 @@ void Write16F87xA (int dim,int dim2,int seq)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_ConfigWord],config); //"Config word: 0x%04X\r\n"
@@ -3666,7 +3666,7 @@ void Write16F81x (int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
config=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_ConfigWord],config); //"Config word: 0x%04X\r\n"
@@ -4037,7 +4037,7 @@ void Write12F61x(int dim, int d, int d2)
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
if(devREV<0x3FFF) PrintMessage1(strings[S_DevREV],devREV); //"DevREV: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
calib1=(bufferI[z+1]<<8)+bufferI[z+2];
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
@@ -4321,7 +4321,7 @@ void Write16F88x(int dim,int dim2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
calib1=(bufferI[z+1]<<8)+bufferI[z+2];
if(calib1<0x3fff){
@@ -4672,7 +4672,7 @@ void Write16F7x(int dim,int vdd)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
//****************** erase memory ********************
PrintMessage(strings[S_StartErase]); //"Erase ... "
j=0;
@@ -4936,7 +4936,7 @@ void Write16F71x(int dim,int vdd)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
//****************** erase memory ********************
PrintMessage(strings[S_StartErase]); //"Erase ... "
j=0;
@@ -5203,7 +5203,7 @@ void Write16F72x(int dim, int d, int d2)
for(z=0;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
//****************** erase memory ********************
PrintMessage(strings[S_StartErase]); //"Erase ... "
j=0;
@@ -5526,7 +5526,7 @@ void Write16F1xxx(int dim,int dim2,int options)
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
if(devREV<0x3FFF) PrintMessage1(strings[S_DevREV],devREV); //"DevREV: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
if(memCODE_W[0x8006]<0x3FFF&&devID!=memCODE_W[0x8006]) PrintMessage(strings[S_DevMismatch]); //"Warning: the device is different from what specified in source data"
if(!F18x){ //16F1xxx
for(z+=3;z<DIMBUF-2&&bufferI[z]!=READ_DATA_PROG;z++);
@@ -6153,7 +6153,7 @@ void Write16F18xxx(int dim,int dim2,int options)
devID=(bufferI[z+1]<<8)+bufferI[z+2];
PrintMessage1(strings[S_DevID],devID); //"DevID: 0x%04X\r\n"
if(devREV<0x3FFF) PrintMessage1(strings[S_DevREV],devREV); //"DevREV: 0x%04X\r\n"
- PIC16_ID(devID);
+ if (!PIC16_ID(devID)) return;
if(memCODE_W[0x8006]<0x3FFF&&devID!=memCODE_W[0x8006]) PrintMessage(strings[S_DevMismatch]); //"Warning: the device is different from what specified in source data"
//****************** DIA-DCI ********************
if(useDCI){ //if not disabled