]> jspc29.x-matter.uni-frankfurt.de Git - avr.git/commitdiff
Magn Sens: write serial number to board
authorPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Thu, 8 Feb 2018 16:59:50 +0000 (17:59 +0100)
committerPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Thu, 8 Feb 2018 16:59:50 +0000 (17:59 +0100)
use with

    make SNUM=00001  # <- your serial

sensors/MagneticFieldSensor/MagnetSensor.c
sensors/MagneticFieldSensor/Makefile
sensors/MagneticFieldSensor/main.c
sensors/MagneticFieldSensor/main.h

index f17415a17da8bacc5a96ee576f9cff894627addc..d6b8f30f1d7935271f37f2afa50cd3519706f109 100644 (file)
@@ -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"); 
    }
 }
 
index 2ec0fe738ef626e5f60b21821a17a9c940c6a3c7..626dfd14e552cb5229b5ff401c516bf855b7dc2b 100644 (file)
@@ -39,7 +39,7 @@ CDEBUG = -g$(DEBUG)
 CWARN = -Wall -Wstrict-prototypes \r
 CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums  -Wl,--relax\r
 #CEXTRA = -Wa,-adhlns=$(<:.c=.lst)\r
-CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) $(CTUNING)\r
+CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) $(CTUNING) -DSERIALNUM=$(SNUM)\r
 \r
 \r
 #ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs \r
index ee685c630dfd224aab25e0a764295067f1013696..0ec2d45e434d08c70027b05d2b4c4b3300640284 100644 (file)
@@ -13,6 +13,7 @@ volatile uint8_t mode = 0;
 \r
 int main(void)\r
 {   char s[30];\r
+    char SerNum[10];\r
     uint8_t Status[4]={0,0,0,0};\r
     uint8_t TC_Enabled[4]={0,0,0,0};\r
     uint8_t Status_Mag[4]={0,0,0,0};\r
@@ -180,13 +181,13 @@ int main(void)
          if (mode == 0) {\r
            // normal running mode\r
            if (Status[0] == 0) { MeasureMagSens(ADDR_MAG_0, TRef[0], &SensX[0], &SensY[0], &SensZ[0], TC_Enabled[0]);}\r
-           else { uputsnl("ERR Mag 0 NO_DEVICE"); }\r
+           else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("0 NO_DEVICE"); }\r
            if (Status[1] == 0) { MeasureMagSens(ADDR_MAG_1, TRef[1], &SensX[1], &SensY[1], &SensZ[1], TC_Enabled[1]);}\r
-           else { uputsnl("ERR Mag 1 NO_DEVICE"); }\r
+           else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("1 NO_DEVICE"); }\r
            if (Status[2] == 0) { MeasureMagSens(ADDR_MAG_2, TRef[2], &SensX[2], &SensY[2], &SensZ[2], TC_Enabled[2]);}\r
-           else { uputsnl("ERR Mag 2 NO_DEVICE"); }\r
+           else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("2 NO_DEVICE"); }\r
            if (Status[3] == 0) { MeasureMagSens(ADDR_MAG_3, TRef[3], &SensX[3], &SensY[3], &SensZ[3], TC_Enabled[3]);}\r
-           else { uputsnl("ERR Mag 3 NO_DEVICE"); }\r
+           else { uputs("ERR Mag ");sprintf(SerNum,"%2u ",SERIALNUM);uputs(SerNum); uputsnl("3 NO_DEVICE"); }\r
            \r
            _delay_ms(500);\r
          } else {// CONFIG MODE\r
index adf1be16ae8d8a75c00e6da2e11eaa03b4ed5a88..e3f36f39f8de7f30b81d88d468d18603df30e38f 100644 (file)
@@ -8,6 +8,8 @@
 #ifndef MAIN_H_\r
 #define MAIN_H_\r
 \r
+//#define SERIALNUM 0\r
+\r
 #include <avr/io.h>\r
 #include <util/delay.h>\r
 #include <string.h>\r