aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2019-10-07 10:10:38 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2019-10-07 10:10:38 +0300
commit032b53897657f88e674d83ae06b76d0ac4d09abc (patch)
tree29f3cf8ce2e10524b7787e140c01a6b651b8c0bc /Software/Embedded_SW
parenta009e4db12c49028bd7414bdbfd645dc6b7f52cd (diff)
parent00489c9af7f6753601c1392c8b8141bcb79d4ea9 (diff)
downloadTango-032b53897657f88e674d83ae06b76d0ac4d09abc.tar.gz
Tango-032b53897657f88e674d83ae06b76d0ac4d09abc.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW')
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c5
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.c211
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h51
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.c19
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.h17
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c2
10 files changed, 286 insertions, 34 deletions
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
index 4b0ca5af4..79866acb2 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c
@@ -498,7 +498,7 @@ uint32_t DeActivateCoolerPump() //WHS - Pump the waste accumulated in cooler to
uint32_t ActivateHeadMagnet()
{
Report("ActivateHeadMagnet - Close the lid magnet",__FILE__,__LINE__,(int)HARDWARE_MOTOR_TYPE__MOTO_RLOADARM,RpWarning,(int)DH_LID_OPEN,0);
- Task_sleep(500);
+ //Task_sleep(500);
F2_CTRL_Reg.ushort &= ~SPARE_SSR13_CTRL;
F2_CTRL = F2_CTRL_Reg.ushort;
if (isMotorConfigured(HARDWARE_MOTOR_TYPE__MOTO_RLOADARM))
diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
index 6b367f76f..2645af25b 100644
--- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
+++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_SPI_Comm.c
@@ -1123,11 +1123,12 @@ void FPGA_SetGoToPosition(TimerMotors_t _motorId)//GoTo
if (MotorDriverRequest[_motorId].Position > 0x3FFFFF) //TODO to check if it is needed here
MotorDriverRequest[_motorId].Position = 0x3FFFFF;
- temp |= (MotorDriverRequest[_motorId].Position);;
+ temp |= (MotorDriverRequest[_motorId].Position);
Fpga_Spi[_motorId].TX_MOSI = temp;
//MillisecWriteToMotor(_motorId, temp, 4, NULL);
- FPGA_SPI_Transnit(_motorId);
+ //FPGA_SPI_Transnit(_motorId);
+ MillisecWriteToMotor(_motorId, temp, 4, NULL);
}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
index 93c432f32..27063dab4 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/ADC_MUX/ADC_MUX.c
@@ -4,7 +4,7 @@
* Created on: Aug 12, 2018
* Author: avi
*
- * 8-Channel, I2C, 12-Bit SAR ADC with Temperature Sensor AD7291
+ * 8-Channel, I2C, 12-Bit SAR ADC with Temperature Sensor AD7291 (AD7291BCPZ)
* Mid tank pressure sensor. Bosch 02612300215
*/
#include <stdint.h>
@@ -51,7 +51,7 @@ uint32_t I2C_ADC_Config(uint32_t I2C_Slave_Add,uint32_t channel )
return Status;
}
-const uint8_t SetRead = 0x01;
+static const uint8_t SetRead = 0x01;
uint32_t I2C_ADC_Set_For_Read_Ch(uint32_t I2C_Slave_Add )
{
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.c
index e29fcc15d..c2e817656 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.c
@@ -3,6 +3,8 @@
*
* Created on: Sep 12, 2019
* Author: avi
+ *
+ * 8-Channel, I2C, 12-Bit SAR ADC with Temperature Sensor AD7291 (AD7291BCPZ)
*/
/*
@@ -14,4 +16,213 @@ ADDR 0x50
*/
+#include "include.h"
+#include "Head_ADC.h"
+#include "../I2C_Head_Mux.h"
+#include <Drivers/I2C_Communication/I2C.h>
+
+static const uint8_t SetRead = 0x01;
+static uint8_t I2C_Read_buf[2] = {0,0};
+static uint8_t I2C_Head_Config_Buf[3];
+uint32_t Head_ADC_Bits[HEAD_NUM_OF_ADC];
+double Head_ADC_Measuring[HEAD_NUM_OF_ADC];
+
+uint32_t Head_I2C_ADC_Set_For_Read_Ch(uint32_t I2C_Slave_Add )
+{
+ uint32_t Status = OK;
+
+ Select_Main_Head_Mux_Channel();
+
+ Status = I2C_Write(I2C_ID_HEAD_CARD, I2C_Slave_Add, &SetRead, 1);
+
+ return Status;
+}
+
+uint32_t Head_I2C_ADC_Read_Ch(uint32_t I2C_Slave_Add )
+{
+ uint32_t VsampleInBits = 0,temp;
+
+ uint8_t No_BytesToRead = 2;
+
+ Select_Main_Head_Mux_Channel();
+
+ I2C_Read(I2C_ID_HEAD_CARD, I2C_Slave_Add, I2C_Read_buf, No_BytesToRead );
+
+ temp = (I2C_Read_buf[0] << 8) | I2C_Read_buf[1];
+
+ VsampleInBits=temp & 0x0fff;
+
+ return VsampleInBits;
+}
+
+uint32_t I2C_Head_ADC_Config(uint32_t I2C_Slave_Add,uint32_t channel )
+{
+ uint32_t Status = OK;
+
+ I2C_Head_Config_Buf[0] = 0x00;
+ I2C_Head_Config_Buf[1] = channel;
+ I2C_Head_Config_Buf[2] = 0x80;
+
+ Status = I2C_Write(I2C_ID_HEAD_CARD, I2C_Slave_Add, I2C_Head_Config_Buf, 3);
+
+ return Status;
+}
+
+double Read_Head_ADC(HEAD_ADC_t Head_ADC_ID)
+{
+ uint32_t Status = OK;
+ uint32_t I2C_Slave_Add;
+ uint32_t Channel;
+ uint32_t VsampleInBits;
+
+ assert (Head_ADC_ID < HEAD_NUM_OF_ADC);
+
+ switch(Head_ADC_ID)
+ {
+ //HEAD_ADC1_0x50:
+ case HEAD_CURRENT_ZONE_1:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x00;
+ break;
+ case HEAD_CURRENT_ZONE_2:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x01;
+ break;
+ case HEAD_CURRENT_ZONE_3:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x02;
+ break;
+ case HEAD_CURRENT_ZONE_4:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x03;
+ break;
+ case HEAD_CURRENT_ZONE_5:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x04;
+ break;
+ case HEAD_CURRENT_ZONE_6:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x05;
+ break;
+ case HEAD_CURRENT_ZONE_7:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x06;
+ break;
+ case HEAD_CURRENT_ZONE_8:
+ I2C_Slave_Add = 0x50;
+ Channel = 0x07;
+
+ //HEAD_ADC2_0x54:
+ case HEAD_CURRENT_ZONE_9:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x01;
+ break;
+ case HEAD_CURRENT_ZONE_10:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x02;
+ break;
+ case HEAD_CURRENT_ZONE_11:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x03;
+ break;
+ case HEAD_CURRENT_ZONE_12:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x04;
+ break;
+ case HEAD_CURRENT_HTIN_1:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x05;
+ break;
+ case HEAD_CURRENT_HTIN_2:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x06;
+ break;
+ case HEAD_CURRENT_HTIN_3:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x07;
+ break;
+ case HEAD_CURRENT_HTIN_4:
+ I2C_Slave_Add = 0x54;
+ Channel = 0x01;
+
+ //HEAD_ADC3_0x56:
+ case HEAD_CURRENT_HTOT_1:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x02;
+ break;
+ case HEAD_CURRENT_HTOT_2:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x03;
+ break;
+ case HEAD_CURRENT_HTOT_3:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x04;
+ break;
+ case HEAD_CURRENT_HTOT_4:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x04;
+ break;
+ case HEAD_CURRENT_MIXER:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x05;
+ break;
+ case HEAD_CURRENT_HT_TOTAL:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x06;
+ break;
+ case HEAD_CURRENT_VALUE:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x07;
+ break;
+ case HEAD_CURRENT_24V:
+ I2C_Slave_Add = 0x56;
+ Channel = 0x08;
+ break;
+ default:
+
+ break;
+ }
+
+ Status = I2C_Head_ADC_Config(I2C_Slave_Add, Channel);
+ SysCtlDelay(1);
+ Status |= Head_I2C_ADC_Set_For_Read_Ch(I2C_Slave_Add);
+ SysCtlDelay(1);
+ VsampleInBits = Head_I2C_ADC_Read_Ch(I2C_Slave_Add);
+
+ if (Status)
+ LOG_ERROR(Status, "Head ADC I2C actions failed");
+
+ Head_ADC_Bits[Head_ADC_ID] = VsampleInBits;//just for debug
+/*
+ if(Head_ADC_ID <= HEAD_CURRENT_ZONE_12)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 1.3, 2500, 4096 );
+ else
+ if(Head_ADC_ID <= HEAD_CURRENT_HTOT_4)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 2.1, 5000, 4096 );
+ else
+ if(Head_ADC_ID == HEAD_CURRENT_MIXER)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 1.7, 2500, 4096 );
+ else
+ if(Head_ADC_ID == HEAD_CURRENT_MIXER)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 2.35, 0, 4.9 ); ???
+ else
+ if(Head_ADC_ID == HEAD_CURRENT_MIXER)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 0.5, 2500, 4096 );
+ else
+ if(Head_ADC_ID == HEAD_CURRENT_MIXER)
+ Head_ADC_Measuring[Head_ADC_ID] = Calc_Head_Current(VsampleInBits, Head_ADC_ID, 2.05, 27500, 4096 ); ???
+*/
+ return Head_ADC_Measuring[Head_ADC_ID];
+}
+
+//------------------------------
+uint32_t Head_Test_ADC()
+{
+ uint32_t status = PASSED;
+
+ Read_Head_ADC(0x50);
+ Read_Head_ADC(0x54);
+ Read_Head_ADC(0x56);
+ return status;
+}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h
index 73c7c444b..ff925d94a 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h
@@ -8,9 +8,9 @@
#ifndef DRIVERS_I2C_COMMUNICATION_HEAD_CARD_ADC_HEAD_ADC_H_
#define DRIVERS_I2C_COMMUNICATION_HEAD_CARD_ADC_HEAD_ADC_H_
-
-enum
+typedef enum
{
+ //----------------------------------------- HEAD_ADC1_0x50
//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
HEAD_CURRENT_ZONE_1, //0
HEAD_CURRENT_ZONE_2, //1
@@ -21,44 +21,41 @@ enum
HEAD_CURRENT_ZONE_7, //6
HEAD_CURRENT_ZONE_8, //7
-}HEAD_ADC1_0x50;
-
-enum
-{
+ //----------------------------------------- HEAD_ADC2_0x54
//Maximum value: 1.3V, 1 LSB: 2500/4096 mA
- HEAD_CURRENT_ZONE_9, //0
- HEAD_CURRENT_ZONE_10, //1
- HEAD_CURRENT_ZONE_11, //2
- HEAD_CURRENT_ZONE_12, //3
+ HEAD_CURRENT_ZONE_9, //8
+ HEAD_CURRENT_ZONE_10, //9
+ HEAD_CURRENT_ZONE_11, //10
+ HEAD_CURRENT_ZONE_12, //11
//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
- HEAD_CURRENT_HTIN_1, //4
- HEAD_CURRENT_HTIN_2, //5
- HEAD_CURRENT_HTIN_3, //6
- HEAD_CURRENT_HTIN_4, //7
+ HEAD_CURRENT_HTIN_1, //12
+ HEAD_CURRENT_HTIN_2, //13
+ HEAD_CURRENT_HTIN_3, //14
+ HEAD_CURRENT_HTIN_4, //15
-}HEAD_ADC2_0x54;
-
-enum
-{
+ //----------------------------------------- HEAD_ADC3_0x56
//Maximum value: 2.1V, 1 LSB: 5000/4096 mA
- HEAD_CURRENT_HTOT_1, //0
- HEAD_CURRENT_HTOT_2, //1
- HEAD_CURRENT_HTOT_3, //2
- HEAD_CURRENT_HTOT_4, //3
+ HEAD_CURRENT_HTOT_1, //16
+ HEAD_CURRENT_HTOT_2, //17
+ HEAD_CURRENT_HTOT_3, //18
+ HEAD_CURRENT_HTOT_4, //19
//Maximum value: 1.7V, 1 LSB: 2500/4096 mA
- HEAD_CURRENT_MIXER, //4
+ HEAD_CURRENT_MIXER, //20
//Maximum value: 2.34V, 1 LSB: 4.9 mA
- HEAD_CURRENT_HT_TOTAL,//5
+ HEAD_CURRENT_HT_TOTAL,//21
//Maximum value: 0.5V, 1 LSB: 2500/4096 mA
- HEAD_CURRENT_VALUE, //6
+ HEAD_CURRENT_VALUE, //22
//Maximum value: (2.05 -2.3) V, 1 LSB: 27500/4096 mV
- HEAD_CURRENT_24V //7
+ HEAD_CURRENT_24V, //23
+
+ HEAD_NUM_OF_ADC //24
+}HEAD_ADC_t;
-}HEAD_ADC3_0x56;
+double Read_Head_ADC(HEAD_ADC_t Head_ADC_ID);
#endif /* DRIVERS_I2C_COMMUNICATION_HEAD_CARD_ADC_HEAD_ADC_H_ */
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.c
index 7a6bb7d30..53b5f613f 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.c
@@ -5,6 +5,25 @@
* Author: avi
*/
+#include "include.h"
+#include "../IO_Ports/Head_IO.h"
+#include "../I2C_Head_Mux.h"
+#include <Drivers/I2C_Communication/I2C.h>
+#include "Head_Heaters.h"
+uint32_t Activate_Head_Card_Heaters(Head_Heaters Head_Heater_ID)//12 Zones
+{
+ uint32_t status= OK;
+ Head_I2C_EXP1_0x40.ushort |= Head_Heater_ID;
+ status = Head_Write_IO_Reg(0x40);
+ return status;
+}
+uint32_t Deactivate_Head_Card_Heaters(Head_Heaters Head_Heater_ID)//12 Zones
+{
+ uint32_t status= OK;
+ Head_I2C_EXP1_0x40.ushort &= ~Head_Heater_ID;
+ status = Head_Write_IO_Reg(0x40);
+ return status;
+}
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.h
index 522824b0f..cffdd865d 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/Heaters/Head_Heaters.h
@@ -9,7 +9,22 @@
#define DRIVERS_I2C_COMMUNICATION_HEAD_CARD_HEATERS_HEAD_HEATERS_H_
-
+typedef enum
+{
+ //Don't change the value - keep it according to the bits in F3_GPO_02_bus
+ HEAD_HEATER_ZN1 = BIT0,
+ HEAD_HEATER_ZN2 = BIT1,
+ HEAD_HEATER_ZN3 = BIT2,
+ HEAD_HEATER_ZN4 = BIT3,
+ HEAD_HEATER_ZN5 = BIT4,
+ HEAD_HEATER_ZN6 = BIT5,
+ HEAD_HEATER_ZN7 = BIT6,
+ HEAD_HEATER_ZN8 = BIT7,
+ HEAD_HEATER_ZN9 = BIT8,
+ HEAD_HEATER_ZN10 = BIT9,
+ HEAD_HEATER_ZN11 = BIT10,
+ HEAD_HEATER_ZN12 = BIT11,
+}Head_Heaters;
#endif /* DRIVERS_I2C_COMMUNICATION_HEAD_CARD_HEATERS_HEAD_HEATERS_H_ */
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
index c7e9a5e9e..96f564b7a 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.c
@@ -221,6 +221,8 @@ uint32_t Head_Read_IO_Reg(uint8_t TCA9555_ADDRESS)
return status;
}
+
+
//------------------------------
uint8_t Head_Test_IO()
{
diff --git a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h
index 21df04f9e..452f986ea 100644
--- a/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h
+++ b/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h
@@ -72,6 +72,7 @@ typedef union
bool OUTPUT_ON_HTIN4 : 1; //p17
}bits;
unsigned char uchar[2];
+ unsigned short ushort;
}HEAD_I2C_EXP1_0x40;
//I2C expander
@@ -98,6 +99,7 @@ typedef union
bool OUTPUT_ACTLOW_HTOT_LATCH_RST : 1; //p17 Pull-Up
}bits;
unsigned char uchar[2];
+ unsigned short ushort;
}HEAD_I2C_EXP2_0x42;
//I2C expander: Break Zones, Break HTIN
@@ -152,6 +154,11 @@ typedef union
unsigned char uchar[2];
}HEAD_I2C_EXP4_0x46;
+extern HEAD_I2C_EXP1_0x40 Head_I2C_EXP1_0x40;
+extern HEAD_I2C_EXP2_0x42 Head_I2C_EXP1_0x42;
+extern HEAD_I2C_EXP3_0x44 Head_I2C_EXP1_0x44;
+extern HEAD_I2C_EXP4_0x46 Head_I2C_EXP1_0x46;
+
uint32_t Head_IO_Init();
uint32_t Head_Write_IO_Reg(uint8_t TCA9555_ADDRESS);
uint32_t Head_Read_IO_Reg(uint8_t TCA9555_ADDRESS);
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
index 1e4b1c0b3..aab2f3329 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsJogging.c
@@ -66,7 +66,7 @@ uint32_t MotorJoggingRequestFunc(MessageContainer* requestContainer)
}
if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID)
{
- int Pos_Value = (direction == 1)?0:2;
+ uint32_t Pos_Value = ((direction == 1)?0:2);
MotorGoTo(MotorId, Pos_Value );
}
else