From 5f686d5179d6a23a37378550b8c1122453d240c1 Mon Sep 17 00:00:00 2001 From: Attila Veghelyi Date: Tue, 25 Jun 2024 20:25:31 +0200 Subject: Stop the process when device ID is unknown --- progP16.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'progP16.c') 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