From: Philipp Klaus Date: Thu, 8 Feb 2018 16:59:50 +0000 (+0100) Subject: Magn Sens: write serial number to board X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=0ee47264357752b6bffd92e45850b5a643e3ca21;p=avr.git Magn Sens: write serial number to board use with make SNUM=00001 # <- your serial --- diff --git a/sensors/MagneticFieldSensor/MagnetSensor.c b/sensors/MagneticFieldSensor/MagnetSensor.c index f17415a..d6b8f30 100644 --- a/sensors/MagneticFieldSensor/MagnetSensor.c +++ b/sensors/MagneticFieldSensor/MagnetSensor.c @@ -78,7 +78,7 @@ uint8_t InitMagSensor(uint8_t Addr, uint16_t* Tref, float* SensX, float* SensY, void MeasureMagSens(uint8_t Addr, uint16_t Tref, float* SensX, float* SensY, float* SensZ, const uint8_t TC_Enabled){ uint8_t MagData[9] = {255,255,255,255,255,255,255,255,255}; char s[30]; - + char SerNum[10]; char Num[2]; sprintf(Num,"%1u",Addr-12); @@ -86,7 +86,7 @@ void MeasureMagSens(uint8_t Addr, uint16_t Tref, float* SensX, float* SensY, flo twi_writeTo(Addr,&dataTest,1,1, true); uint8_t status_1; twi_readFrom(Addr, &status_1, 1, true); - sprintf(s,"Status: 0x%x",status_1); + sprintf(s,"Status %02u 0x%x: 0x%x",SERIALNUM,Addr,status_1); uputsnl(s); _delay_ms(100); @@ -117,21 +117,21 @@ void MeasureMagSens(uint8_t Addr, uint16_t Tref, float* SensX, float* SensY, flo } int16_t temp_temp = (uint16_t)(tMag) - (uint16_t)(Tref); float Temperature = 35.0 + (temp_temp/45.2); - uputs("M");uputs(Num);uputs("_T "); + uputs("M");sprintf(SerNum,"_%02u_",SERIALNUM);uputs(SerNum);uputs(Num);uputs("_T "); sprintf(s,"%4.2f",Temperature); uputsnl(s); - uputs("M");uputs(Num);uputs("_X "); + uputs("M");sprintf(SerNum,"_%02u_",SERIALNUM);uputs(SerNum);uputs(Num);uputs("_X "); sprintf(s,"%4.3f",((float)xMag*(*SensX))); //muT uputsnl(s); - uputs("M");uputs(Num);uputs("_Y "); + uputs("M");sprintf(SerNum,"_%02u_",SERIALNUM);uputs(SerNum);uputs(Num);uputs("_Y "); sprintf(s,"%4.3f",((float)yMag*(*SensY))); //muT uputsnl(s); - uputs("M");uputs(Num);uputs("_Z "); + uputs("M");sprintf(SerNum,"_%02u_",SERIALNUM);uputs(SerNum);uputs(Num);uputs("_Z "); sprintf(s,"%4.3f",((float)zMag*(*SensZ))); //muT uputsnl(s); - uputs("ERR Mag ");uputs(Num);uputsnl(" NO"); // ERROR INFORMATION FOR EPICS + uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum);uputs(Num);uputsnl(" NO"); // ERROR INFORMATION FOR EPICS } else { - uputs("ERR Mag ");uputs(Num);uputsnl(" CONNECTION"); + uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum);uputs(Num);uputsnl(" CONNECTION"); } } diff --git a/sensors/MagneticFieldSensor/Makefile b/sensors/MagneticFieldSensor/Makefile index 2ec0fe7..626dfd1 100644 --- a/sensors/MagneticFieldSensor/Makefile +++ b/sensors/MagneticFieldSensor/Makefile @@ -39,7 +39,7 @@ CDEBUG = -g$(DEBUG) CWARN = -Wall -Wstrict-prototypes CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wl,--relax #CEXTRA = -Wa,-adhlns=$(<:.c=.lst) -CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) $(CTUNING) +CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) $(CTUNING) -DSERIALNUM=$(SNUM) #ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs diff --git a/sensors/MagneticFieldSensor/main.c b/sensors/MagneticFieldSensor/main.c index ee685c6..0ec2d45 100644 --- a/sensors/MagneticFieldSensor/main.c +++ b/sensors/MagneticFieldSensor/main.c @@ -13,6 +13,7 @@ volatile uint8_t mode = 0; int main(void) { char s[30]; + char SerNum[10]; uint8_t Status[4]={0,0,0,0}; uint8_t TC_Enabled[4]={0,0,0,0}; uint8_t Status_Mag[4]={0,0,0,0}; @@ -180,13 +181,13 @@ int main(void) if (mode == 0) { // normal running mode if (Status[0] == 0) { MeasureMagSens(ADDR_MAG_0, TRef[0], &SensX[0], &SensY[0], &SensZ[0], TC_Enabled[0]);} - else { uputsnl("ERR Mag 0 NO_DEVICE"); } + else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("0 NO_DEVICE"); } if (Status[1] == 0) { MeasureMagSens(ADDR_MAG_1, TRef[1], &SensX[1], &SensY[1], &SensZ[1], TC_Enabled[1]);} - else { uputsnl("ERR Mag 1 NO_DEVICE"); } + else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("1 NO_DEVICE"); } if (Status[2] == 0) { MeasureMagSens(ADDR_MAG_2, TRef[2], &SensX[2], &SensY[2], &SensZ[2], TC_Enabled[2]);} - else { uputsnl("ERR Mag 2 NO_DEVICE"); } + else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("2 NO_DEVICE"); } if (Status[3] == 0) { MeasureMagSens(ADDR_MAG_3, TRef[3], &SensX[3], &SensY[3], &SensZ[3], TC_Enabled[3]);} - else { uputsnl("ERR Mag 3 NO_DEVICE"); } + else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("3 NO_DEVICE"); } _delay_ms(500); } else {// CONFIG MODE diff --git a/sensors/MagneticFieldSensor/main.h b/sensors/MagneticFieldSensor/main.h index adf1be1..e3f36f3 100644 --- a/sensors/MagneticFieldSensor/main.h +++ b/sensors/MagneticFieldSensor/main.h @@ -8,6 +8,8 @@ #ifndef MAIN_H_ #define MAIN_H_ +//#define SERIALNUM 0 + #include #include #include