aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Embedded_SW/Embedded/DataDef.h1
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c398
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h3
-rw-r--r--Software/Embedded_SW/Embedded/Main.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c6
5 files changed, 394 insertions, 18 deletions
diff --git a/Software/Embedded_SW/Embedded/DataDef.h b/Software/Embedded_SW/Embedded/DataDef.h
index 001303c88..10e6a78f6 100644
--- a/Software/Embedded_SW/Embedded/DataDef.h
+++ b/Software/Embedded_SW/Embedded/DataDef.h
@@ -169,6 +169,7 @@ typedef enum
#define LOW 0x0
#define HIGH 0x1
#define LOW_AND_HIGH 0x2
+#define HIGHEST 0x3
#define WR 0
#define RD 1
diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c
index 92337080d..118891a39 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c
+++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.c
@@ -40,6 +40,9 @@ static uint32_t GlobalClk;
uint8_t BTSR_RX_Buff[Max_BTSR_RX_Bytes];
uint16_t TX_Timeout = 0xFFFF;//6250
uint16_t RX_Timeout = 0xFFFF;//1
+float BTSR_Length = 0;
+
+#define BTSR_RADIUS 3 //TBD ?
typedef enum
{
@@ -366,6 +369,7 @@ uint8_t Check_Received_CheckSum(uint8_t CODE_STRING, uint8_t Function_Code, uint
(Buf[size_include_Checksum - 1] != (Sum >> 8)) )
{
Status = ERROR;
+ ReportWithPackageFilter(ThreadFilter,"BTSR Get Wrong Checksum",__FILE__,__LINE__,(int)CODE_STRING,RpError,(int)Function_Code,0);
}
}
return Status;
@@ -646,11 +650,94 @@ typedef struct
typedef union
{
- BITS Bit[4];
- uint8_t Byte[4];
+ BITS Bit[6];
+ uint8_t Byte[6];
}BTSR_ALARM_AND_ENABLING_STATUS_READ;
+
+typedef union
+{
+ struct
+ {
+ uint8_t SW_VERSION;//0XDE
+ uint8_t SW_UNDER_VERSION;//0X01
+ uint8_t BYTE_U0X55;//0X55
+ uint8_t BYTE_F0X46;//0X46
+ uint8_t PRODUCT_CODE;//0X13
+ uint8_t TENSION_SENSOR_END_SCALE;//0X65
+ uint8_t BOARD_HW_VERSION;//0X02
+ uint8_t BOOTLOADER_SW_VERSION;//0X0A
+ uint8_t BYTE_0X32;//0X32
+ uint8_t SPARE;//0X00
+ uint8_t CHECKSUM_LSB;//0X60
+ uint8_t CHECKSUM_MSB;//0X01
+ }Byte;
+uint8_t Buf[12];
+}BTSR_DEVICE_INFORMATION_READ;
+
+
BTSR_ALARM_AND_ENABLING_STATUS_READ BTSR_Status;
+BTSR_DEVICE_INFORMATION_READ BTSR_Info;
+
+typedef union
+{
+ struct
+ {
+ uint8_t CODE_STRING ;
+ uint8_t FUNCTION_STRING;
+
+ //DATA_STRING
+ uint16_t WORK_TENSION ;//1° - 2°
+ uint16_t OUTPUT_TENSION;//3° - 4°
+ uint16_t RELAX_YARN ;//5° - 6°
+ uint8_t INC_DEC_TENSION;//7°
+ uint8_t INC_DEC_STRETCH;//8°
+ uint16_t TENSION_ERROR ;//9° - 10°
+ uint16_t TIME_ALARM ;//11° - 12°
+ uint8_t RELAX_SPEED ;//13°
+ uint8_t APPLICATION ;//14°
+ uint8_t YARN_TYPE ;//15°
+ uint8_t SPARE[4] ;//16°
+ uint8_t ALARM_ENABLING ;//20°
+ uint8_t ABILITAZIONE ;//21°
+
+ uint16_t CHECKSUM ;
+ }Byte;
+uint8_t Buf[25];
+}BTSR_ADVANCED_STYLE_LOAD;
+
+BTSR_ADVANCED_STYLE_LOAD BTSR_AdvStyle_Load;
+
+typedef union
+{
+ struct
+ {
+ uint8_t CODE_STRING ;
+ uint8_t FUNCTION_STRING ;
+
+ //DATA_STRING
+ uint16_t OUTPUT_TENSION ;
+ uint16_t WORK_TENSION ;
+ uint16_t RELAX_YARN ;
+ uint8_t INC_DEC_TENSION ;
+ uint8_t INC_DEC_STRETCH ;
+ uint32_t METER_START ;
+ uint32_t INC_DEC_METER ;
+ uint32_t TARGET ;
+ uint16_t TENSION_ERROR ;
+ uint16_t ALARM_TIME ;
+ uint8_t SPARE1[2] ;
+ uint8_t ALARM_ENABLING ;
+ uint8_t TARGET_ENABLING ;
+ uint8_t RELAX_YARN_SPEED;
+ uint8_t SPARE2[6] ;
+
+ uint16_t CHECKSUM ;
+ }Byte;
+uint8_t Buf[39];
+}BTSR_ADVANCED_TENSION_PROGRAMMING;
+
+BTSR_ADVANCED_TENSION_PROGRAMMING BTSR_Adv_Tension_Prog;
void BTSR_Configuration_Set(uint8_t UFeeder_ID)
{
@@ -664,11 +751,178 @@ void BTSR_Configuration_Set(uint8_t UFeeder_ID)
BTSR_Calculate_CheckSum(BTSR_TX_Buff,18);
- BTSR_Send_Buf(Typology_Set.Buf, 20);
+ BTSR_Send_Buf(BTSR_TX_Buff, 20);
}
-void BTSR_Alarm_and_Enabling_Status_Read(uint8_t UFeeder_ID)
+void BTSR_Advanced_Style_Load(uint8_t UFeeder_ID, uint16_t Tension, uint16_t Tension_Error, uint16_t Time_Alarm, BTSR_APPLICATION Application, BTSR_YARN_TYPE YarnType )
+{
+ //memset(BTSR_AdvStyle_Load.Buf, 0, Size);
+ /*
+ uint8_t Size = sizeof(BTSR_AdvStyle_Load.Buf);
+
+ memset(BTSR_AdvStyle_Load.Buf, 0, Size);
+/
+ BTSR_AdvStyle_Load.Byte.CODE_STRING = UFeeder_ID;
+ BTSR_AdvStyle_Load.Byte.FUNCTION_STRING = 0x4B;
+
+ BTSR_AdvStyle_Load.Byte.WORK_TENSION = Tension;
+ BTSR_AdvStyle_Load.Byte.TENSION_ERROR = Tension_Error;
+ BTSR_AdvStyle_Load.Byte.TIME_ALARM = Time_Alarm;
+ BTSR_AdvStyle_Load.Byte.APPLICATION = Application;
+ BTSR_AdvStyle_Load.Byte.YARN_TYPE = YarnType;
+ BTSR_AdvStyle_Load.Byte.ALARM_ENABLING = 0x03; // OUTPUT TENSION ENABLED + TENSION ERROR ENABLED
+*/
+ //BTSR_Calculate_CheckSum(BTSR_AdvStyle_Load.Buf,Size - 2);
+
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+ BTSR_TX_Buff[1] = 0x4B;
+
+ BTSR_TX_Buff[2] = 0xCD;//1
+ BTSR_TX_Buff[3] = 0x00;//2
+
+ BTSR_TX_Buff[10] = 0x02;//9
+ BTSR_TX_Buff[11] = 0x00;//10
+ BTSR_TX_Buff[12] = 0x04;//11
+ BTSR_TX_Buff[13] = 0x00;//12
+
+
+ BTSR_TX_Buff[15] = FLAT_KNIT;//14
+ BTSR_TX_Buff[16] = ALL_YARNS2;//15
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,23);
+
+ BTSR_Send_Buf(BTSR_TX_Buff,25);
+
+}
+
+void BTSR_Advanced_Tension_Prog(uint8_t UFeeder_ID, uint16_t Tension, uint16_t Tension_Error, uint16_t Time_Alarm )
+{
+
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+ BTSR_TX_Buff[1] = 0x39;
+
+ BTSR_TX_Buff[4] = Tension & 0XFF;//3
+ BTSR_TX_Buff[5] = Tension >> 8;//4
+
+ BTSR_TX_Buff[22] = Tension_Error & 0XFF;//21
+ BTSR_TX_Buff[23] = Tension_Error >> 8;//22
+
+ BTSR_TX_Buff[24] = Time_Alarm & 0XFF;//23
+ BTSR_TX_Buff[25] = Time_Alarm >> 8;//24
+
+ BTSR_TX_Buff[28] = 0x01;//27 ‘1’ TENSION ERROR ENABLED
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,37);
+
+ BTSR_Send_Buf(BTSR_TX_Buff,39);
+}
+
+void BTSR_Application_Yarn_Type_Set(uint8_t BTSR_Id, BTSR_APPLICATION Application, BTSR_YARN_TYPE Yarn_Type )
+{
+ //APPLICATION_AND_YARN_TYPOLOGY_SET_27
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = BTSR_Id;
+ BTSR_TX_Buff[1] = 0x3F;
+ BTSR_TX_Buff[2] = Application;
+ BTSR_TX_Buff[3] = Yarn_Type;
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,4);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 6);
+}
+
+
+void BTSR_Status_Reset(uint8_t UFeeder_ID)//35
+{
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+ BTSR_TX_Buff[1] = 0x27;
+ BTSR_TX_Buff[2] = 0x07;//RESET_0
+ BTSR_TX_Buff[3] = 0x00;//RESET_1
+ BTSR_TX_Buff[4] = 0x00;//SPARE
+ BTSR_TX_Buff[4] = 0x00;//SPARE
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,6);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 8);
+
+}
+
+void BTSR_Errors_Counter_Reset(uint8_t UFeeder_ID)//36
+{
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+ BTSR_TX_Buff[1] = 0x29;
+ BTSR_TX_Buff[2] = 0x00;//00 - RESETS ALL THE COUNTERS
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,3);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 5);
+
+}
+
+void BTSR_Meters_Total_Counter_Reset(uint8_t UFeeder_ID , uint8_t Resolution)//37/39/41
+{
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+
+ if(Resolution == LOW)
+ BTSR_TX_Buff[1] = 0x06;
+ else
+ if(Resolution == HIGH)
+ BTSR_TX_Buff[1] = 0x1E;
+ else
+ if(Resolution == HIGHEST)
+ BTSR_TX_Buff[1] = 0x48;
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,2);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 4);
+}
+
+void BTSR_Info_Read(uint8_t UFeeder_ID)
+{
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+ BTSR_TX_Buff[1] = 0x3E;
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,2);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 4);
+
+}
+
+void BTSR_Meters_Total_Counter_Read(uint8_t UFeeder_ID , uint8_t Resolution)//37/39/41
+{
+ memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
+
+ BTSR_TX_Buff[0] = UFeeder_ID;
+
+ if(Resolution == LOW)
+ BTSR_TX_Buff[1] = 0x16;
+ else
+ if(Resolution == HIGH)
+ BTSR_TX_Buff[1] = 0x1D;
+ else
+ if(Resolution == HIGHEST)
+ BTSR_TX_Buff[1] = 0x47;
+
+ BTSR_Calculate_CheckSum(BTSR_TX_Buff,2);
+
+ BTSR_Send_Buf(BTSR_TX_Buff, 4);
+}
+
+void BTSR_Alarm_and_Enabling_Status_Read(uint8_t UFeeder_ID)//30
{
memset(BTSR_TX_Buff, 0, Max_BTSR_TX_Bytes);
@@ -677,7 +931,7 @@ void BTSR_Alarm_and_Enabling_Status_Read(uint8_t UFeeder_ID)
BTSR_Calculate_CheckSum(BTSR_TX_Buff,2);
- BTSR_Send_Buf(Typology_Set.Buf, 4);
+ BTSR_Send_Buf(BTSR_TX_Buff, 4);
}
typedef enum
@@ -715,24 +969,39 @@ typedef enum
MAX_BTSR_SET
}BTSR_CMD;
+typedef union
+{
+ struct
+ {
+ uint32_t Uint32;
+ uint16_t CheckSum;
+ }Data;
+ uint8_t Buf[6];
+}BTSR_METERS;
+
+BTSR_METERS BTSR_Meters;
+
+
#define Get_Set_resp 5
#define Set_Command 6
#define Get_Read_resp 7
#define Read_Command 8
-BTSR_CMD BTSR_command_Stage[MAX_BTSR_SET];
+uint8_t BTSR_command_Stage[MAX_BTSR_SET];
uint8_t BTSR_State_Machine(uint8_t UFeeder_ID)
{
uint8_t status = OK;
- uint8_t i;
+ uint8_t i,j;
+
+ //BTSR_Init();
for(i = DEVICE_CALIBRATION_11; i < MAX_BTSR_SET; i++)
{
if(BTSR_command_Stage[i] == Get_Set_resp)
{
- if((i >= DEVICE_CALIBRATION_11) && (i <= RESETS_ALL_THE_COUNTERS_36) /*&& (BTSR_RX_Buff[0] != BTSR_RISP_OK)*/)
+ if((i >= DEVICE_CALIBRATION_11) && (i <= RESETS_ALL_THE_COUNTERS_36) && (BTSR_RX_Buff[0] != BTSR_RISP_OK))
{
status = ERROR;
BTSR_command_Stage[i] = BTSR_RX_Buff[0];
@@ -746,17 +1015,39 @@ uint8_t BTSR_State_Machine(uint8_t UFeeder_ID)
BTSR_command_Stage[i] = BTSR_RX_Buff[1];
//print response + command ID
}
- //print response + command ID
- BTSR_command_Stage[i] = OK;
+ else//print response + command ID
+ BTSR_command_Stage[i] = BTSR_RX_Buff[0];//OK;
}
if(BTSR_command_Stage[i] == Set_Command)
{
- if(i == CONFIGURATION_SET_15)
+ switch(i)
{
- BTSR_Configuration_Set(UFeeder_ID);
+ case CONFIGURATION_SET_15:
+ BTSR_Configuration_Set(UFeeder_ID);
+ break;
+ case ADVANCED_TENSION_PROGRAMMING_21:
+ BTSR_Advanced_Tension_Prog(0x01, 0x0101, 0x0101, 0x0101 );
+ break;
+ case APPLICATION_AND_YARN_TYPOLOGY_SET_27:
+ BTSR_Application_Yarn_Type_Set(0x01, SHOES, ELASTIC2 );
+ break;
+ case ALARM_STATUS_RESET_35:
+ BTSR_Status_Reset(0x01);
+ break;
+ case RESETS_ALL_THE_COUNTERS_36:
+ BTSR_Errors_Counter_Reset(0x01);
+ break;
+ case METERS_TOTAL_COUNTER_RESET_LOW_38:
+ BTSR_Meters_Total_Counter_Reset(UFeeder_ID, LOW);
+ break;
+ case METERS_TOTAL_COUNTER_RESET_HIGH_40:
+ BTSR_Meters_Total_Counter_Reset(UFeeder_ID, HIGH);
+ break;
+ case METERS_TOTAL_COUNTER_RESET_HIGHEST_42:
+ BTSR_Meters_Total_Counter_Reset(UFeeder_ID, HIGHEST);
+ break;
}
-
BTSR_command_Stage[i] = Get_Set_resp;
return status;//Only one command in cycle
}
@@ -770,19 +1061,56 @@ uint8_t BTSR_State_Machine(uint8_t UFeeder_ID)
// Add CRC check
if(i == ALARM_AND_ENABLING_STATUS_READ_30)
{
- for(i = 0; i < 4; i++)
- BTSR_Status.Byte[i] = BTSR_RX_Buff[i];
+ for(j = 0; j < 6; j++)
+ BTSR_Status.Byte[j] = BTSR_RX_Buff[j];
}
+ else
+ if(i == DEVICE_INFORMATION_READ_10)
+ {
+ for(j = 0; j < 20; j++)
+ BTSR_Info.Buf[j] = BTSR_RX_Buff[j];
+ status |= Check_Received_CheckSum(UFeeder_ID, 0x3E, BTSR_Info.Buf, 20);
+ ReportWithPackageFilter(ThreadFilter,"BTSR VERSION",__FILE__,UFeeder_ID,(BTSR_Info.Byte.BOARD_HW_VERSION << 8) | BTSR_Info.Byte.BOOTLOADER_SW_VERSION,RpMessage,(BTSR_Info.Byte.SW_VERSION << 8) | BTSR_Info.Byte.SW_UNDER_VERSION,0);
+ }
+ if((i == METERS_TOTAL_COUNTER_READ_LOW_37) || (i == METERS_TOTAL_COUNTER_READ_HIGH_39) || (i == METER_TOTAL_COUNTER_READ_HIGHEST_41))
+ {
+ for(j = 0; j < 6; j++)
+ BTSR_Meters.Buf[j] = BTSR_RX_Buff[j];
+ status |= Check_Received_CheckSum(UFeeder_ID, 0x16, BTSR_Meters.Buf, 6);
+
+ BTSR_Length = (float)(BTSR_Meters.Data.Uint32) * PI * BTSR_RADIUS;
+ if(i == METERS_TOTAL_COUNTER_READ_HIGH_39)
+ BTSR_Length/=12.0;
+ else
+ if(i == METER_TOTAL_COUNTER_READ_HIGHEST_41)
+ BTSR_Length/=750.0;
+ }
+
+ memset(BTSR_RX_Buff, 0, Max_BTSR_RX_Bytes);
BTSR_command_Stage[i] = 0;
}
if(BTSR_command_Stage[i] == Read_Command)
{
-
- if(i == ALARM_AND_ENABLING_STATUS_READ_30)
+ switch(i)
{
- BTSR_Alarm_and_Enabling_Status_Read(UFeeder_ID);
+ case ALARM_AND_ENABLING_STATUS_READ_30:
+ BTSR_Alarm_and_Enabling_Status_Read(UFeeder_ID);
+ break;
+ case DEVICE_INFORMATION_READ_10:
+ BTSR_Info_Read(UFeeder_ID);
+ break;
+ case METERS_TOTAL_COUNTER_READ_LOW_37:
+ BTSR_Meters_Total_Counter_Read(UFeeder_ID, LOW);
+ break;
+ case METERS_TOTAL_COUNTER_READ_HIGH_39:
+ BTSR_Meters_Total_Counter_Read(UFeeder_ID, HIGH);
+ break;
+ case METER_TOTAL_COUNTER_READ_HIGHEST_41:
+ BTSR_Meters_Total_Counter_Read(UFeeder_ID, HIGHEST);
+ break;
}
+
BTSR_command_Stage[i] = Get_Read_resp;
return status;//Only one command in cycle
}
@@ -791,3 +1119,37 @@ uint8_t BTSR_State_Machine(uint8_t UFeeder_ID)
return status;
}
+
+void BTSR_Init()
+{
+ //if( BTSR_command_Stage[CONFIGURATION_SET_15] == 0)
+ BTSR_command_Stage[CONFIGURATION_SET_15] = Set_Command;
+ BTSR_command_Stage[DEVICE_INFORMATION_READ_10] = Read_Command;
+
+ /////////////////////////////////////// test ////////////////////////
+
+ BTSR_command_Stage[ADVANCED_TENSION_PROGRAMMING_21] = Set_Command;//test
+
+ BTSR_command_Stage[APPLICATION_AND_YARN_TYPOLOGY_SET_27] = Set_Command;//test
+
+ //if( BTSR_command_Stage[ALARM_AND_ENABLING_STATUS_READ_30] == 0)
+ BTSR_command_Stage[ALARM_AND_ENABLING_STATUS_READ_30] = Read_Command;
+
+ BTSR_command_Stage[ALARM_STATUS_RESET_35] = Set_Command;//test
+
+ BTSR_command_Stage[RESETS_ALL_THE_COUNTERS_36] = Set_Command;//test
+
+ BTSR_command_Stage[METER_TOTAL_COUNTER_READ_HIGHEST_41] = Set_Command;//test
+
+ BTSR_command_Stage[METERS_TOTAL_COUNTER_RESET_HIGHEST_42] = Set_Command;//test
+}
+
+
+
+//void BTSR_Test()
+//{
+// BTSR_Advanced_Style_Load(0x01, 0xABCD, 0x0102, 0x0304, FLAT_KNIT, ALL_YARNS2 );
+//}
+
+
+
diff --git a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h
index 14fda8f19..398c3cf25 100644
--- a/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h
+++ b/Software/Embedded_SW/Embedded/Drivers/Uart_Comm/BTSR/BTSR.h
@@ -62,4 +62,7 @@ uint8_t Check_Received_CheckSum(uint8_t CODE_STRING, uint8_t Function_Code, uint
uint8_t BTSR_Send_Buf_3xADD1(uint8_t *Buf, uint8_t size);//Only for commands with 3 bytes with Address 1 (0x06/0xFD)
void InitConsole_BTSR_UART4(int32_t ui32SysClock);
+uint8_t BTSR_State_Machine(uint8_t UFeeder_ID);
+void BTSR_Init();
+
#endif /* DRIVERS_UART_COMM_BTSR_BTSR_H_ */
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index c1eeff837..933f4b72c 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -359,6 +359,10 @@ int main(void)
I2C_DispRFIDTask_Init();//I2C Task for dispensers & RFID
+#ifdef USE_UART4_FOR_BTSR
+ BTSR_Init();
+#endif
+
#if defined(USE_RFID_LOGIC) || defined(USE_RFID_STUB)
//Trigger_RFID_Init(); //Init_IFS();//must be done after FPGA_Init
Init_IFS();
diff --git a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
index ad5a1d5ca..b85bb9824 100644
--- a/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
+++ b/Software/Embedded_SW/Embedded/Modules/Control/MillisecTask.c
@@ -72,6 +72,7 @@
#include <Drivers/I2C_Communication/RFID_NFC/RFIDTagInfo.h>
#include <Drivers/I2C_Communication/RFID_NFC/I2C_IFS_Mux.h>
#include <Drivers/I2C_Communication/RFID_NFC/NFC.h>
+#include "Drivers/Uart_Comm/BTSR/BTSR.h"
Task_Handle Millisecond_Task_Handle;
/******************** Definitions ********************************************/
@@ -723,6 +724,11 @@ uint32_t MillisecLowLoop(uint32_t tick)
}
}
#endif
+
+ #ifdef USE_UART4_FOR_BTSR
+ //call every 100mSec
+ BTSR_State_Machine(0x01);
+ #endif
}
if (Gradient_Tick)
DispensersCollectionCall();