Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of workinQM_5thJan_azad by
Diff: TCTM.cpp
- Revision:
- 41:5df2bed2157d
- Parent:
- 40:c2538d97e78b
diff -r c2538d97e78b -r 5df2bed2157d TCTM.cpp
--- a/TCTM.cpp Tue Jul 05 19:14:06 2016 +0000
+++ b/TCTM.cpp Fri Jul 08 08:14:29 2016 +0000
@@ -18,7 +18,7 @@
//***********************************FOR STANDBY TIMER****************************************************
extern void BAE_STANDBY_TIMER_RESET();
-uint8_t telemetry[135];
+uint8_t telemetry[134];
extern uint8_t BAE_HK_data[134];
//*****************PARA******************************
@@ -353,6 +353,7 @@
telemetry[5] = (telemetry[5]<<1);
//now one spares in telemetry[5]
telemetry[6] = BAE_RESET_COUNTER;
+ printf("telemetry[6] flash read is %x:\r\r\n ",telemetry[6]);
telemetry[7] = EPS_SOC_LEVEL_12;
telemetry[8] = EPS_SOC_LEVEL_23;
telemetry[9] = ACS_MAG_TIME_DELAY;
@@ -369,6 +370,7 @@
telemetry[18] = ACS_MG_X_COMSN >> 8;
telemetry[19] = ACS_MG_X_COMSN;
+ printf("telemetry[19] flash read is %x: \r\n",telemetry[19]);
telemetry[20] = ACS_MG_Y_COMSN >> 8;
telemetry[21] = ACS_MG_Y_COMSN;
@@ -515,6 +517,7 @@
crc16 = CRC::crc16_gen(telemetry,132);
telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
telemetry[133] = (uint8_t)(crc16&0x00FF);
+ printf("CRC %x %x: \r\n",telemetry[132],telemetry[133]);
break;
}
@@ -597,6 +600,7 @@
crc16 = CRC::crc16_gen(telemetry,132);
telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
telemetry[133] = (uint8_t)(crc16&0x00FF);
+ printf("CRC %x %x: \r\n",telemetry[132],telemetry[133]);
break;
}
default://invalid MID
@@ -638,6 +642,7 @@
//FLASH_DATA[0] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[8]);
//FCTN_BAE_WR_FLASH(0,FLASH_DATA[0]);
BCN_LONG_MSG_TYPE = tc[8];
+ printf("BCN_LONG_MSG_TYPE = tc[8] = : %X",tc[8]);
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0);
FLASH_DATA = (FLASH_DATA & 0xFFFFFBFF) | (10<<(uint32_t)tc[8]);//see if uint8 to uint32 conversion works
FCTN_BAE_WR_FLASH(0,FLASH_DATA);
@@ -648,7 +653,9 @@
{
//FLASH_DATA[1] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
ACS_DETUMBLING_ALGO_TYPE = (tc[8] & 0x01);
- ACS_STATE = (tc[8]>>1) & 0x0F;
+ printf("ACS_DETUMBLING_ALGO_TYPE = tc[8] = : %X",tc[8]);
+ //ACS_STATE = (tc[8]>>1) & 0x0F;
+ ACS_STATE = 9;
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0);
FLASH_DATA = (FLASH_DATA & 0xFFF07FFF) | (15<<(uint32_t)tc[8]);
FCTN_BAE_WR_FLASH(0,FLASH_DATA);
@@ -661,6 +668,7 @@
//FLASH_DATA[2] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
//EPS_BATTERY_HEATER_ENABLE = tc[8];
EPS_BTRY_HTR_AUTO = tc[8];
+ printf("EPS_BTRY_HTR_AUTO = tc[8] = : %X",tc[8]);
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0);
FLASH_DATA = (FLASH_DATA & 0xFFFFFDFF) | (9<<(uint32_t)tc[8]);
FCTN_BAE_WR_FLASH(0,FLASH_DATA);
@@ -673,6 +681,8 @@
//FLASH_DATA[3] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
ACS_MAG_TIME_DELAY = tc[7];
ACS_DEMAG_TIME_DELAY = tc[8];
+ printf("ACS_MAG_TIME_DELAY= tc[7] = : %X",tc[7]);
+ printf("ACS_DEMAG_TIME_DELAY = tc[8] = : %X",tc[8]);
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(1);
FLASH_DATA = (FLASH_DATA & 0xFFFF0000) | (8<<(uint32_t)tc[7]) | ((uint32_t)tc[8]);
FCTN_BAE_WR_FLASH(1,FLASH_DATA);
@@ -682,7 +692,9 @@
case 0x0104:
{
//FLASH_DATA[4] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
+
ACS_Z_FIXED_MOMENT = (8<<(uint16_t)tc[7]) | (uint16_t)tc[8];
+ printf("ACS_Z_FIXED_MOMENT = tc[7]tc[8] = : %X %X",tc[7], tc[8]);
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(6);
FLASH_DATA = (FLASH_DATA & 0x0000FFFF) | ((uint32_t)ACS_Z_FIXED_MOMENT<<16);
FCTN_BAE_WR_FLASH(6,FLASH_DATA);
@@ -694,6 +706,8 @@
//FLASH_DATA[6] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
ACS_MM_Z_COMSN = ((uint16_t)tc[5]<<8) | (uint16_t)tc[6];
ACS_MG_Z_COMSN = ((uint16_t)tc[7]<<8) | (uint16_t)tc[8];
+ printf("ACS_MM_Z_COMSN = tc[5]tc[6] = : %X %X",tc[5], tc[6]);
+ printf("ACS_MG_Z_COMSN = tc[7]tc[8] = : %X %X",tc[7], tc[8]);
FLASH_DATA = ((uint32_t)ACS_MM_Z_COMSN<<16) | (uint32_t)ACS_MG_Z_COMSN;
FCTN_BAE_WR_FLASH(5,FLASH_DATA);
VALID_MID=1;
@@ -704,6 +718,9 @@
//FLASH_DATA[5] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
EPS_SOC_LEVEL_12 = tc[7];
EPS_SOC_LEVEL_23 = tc[8];
+ printf("EPS_SOC_LEVEL_12 = : %X",tc[7]);
+ printf("EPS_SOC_LEVEL_23 = : %X",tc[8]);
+ printf("ACS_MG_Z_COMSN = tc[7]tc[8] = : %X %X",tc[7], tc[8]);
FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(1);
FLASH_DATA = (FLASH_DATA & 0x0000FFFF) | ((uint32_t)tc[7]<<24) | ((uint32_t)tc[8]<<16);
FCTN_BAE_WR_FLASH(1,FLASH_DATA);
@@ -715,6 +732,8 @@
//FLASH_DATA[6] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
ACS_MM_X_COMSN = ((uint16_t)tc[5]<<8) | (uint16_t)tc[6];
ACS_MM_Y_COMSN = ((uint16_t)tc[7]<<8) | (uint16_t)tc[8];
+ printf("ACS_MM_X_COMSN = tc[5]tc[6] = : %X %X",tc[5], tc[6]);
+ printf("ACS_MM_Y_COMSN = tc[7]tc[8] = : %X %X",tc[7], tc[8]);
FLASH_DATA = ((uint32_t)ACS_MM_X_COMSN<<16) | (uint32_t)ACS_MM_Y_COMSN;
FCTN_BAE_WR_FLASH(3,FLASH_DATA);
VALID_MID=1;
@@ -725,6 +744,8 @@
//FLASH_DATA[7] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]);
ACS_MG_X_COMSN = ((uint16_t)tc[5]<<8) | (uint16_t)tc[6];
ACS_MG_Y_COMSN = ((uint16_t)tc[7]<<8) | (uint16_t)tc[8];
+ printf("ACS_MG_X_COMSN = tc[5]tc[6] = : %X %X",tc[5], tc[6]);
+ printf("ACS_MG_Y_COMSN = tc[7]tc[8] = : %X %X",tc[7], tc[8]);
FLASH_DATA = ((uint32_t)ACS_MG_X_COMSN<<16) | (uint32_t)ACS_MG_Y_COMSN;
FCTN_BAE_WR_FLASH(4,FLASH_DATA);
VALID_MID=1;
@@ -849,7 +870,7 @@
// Control algo commissioning
uint16_t moment_ret;
- telemetry[0] = 0xF0;
+ telemetry[0] = 0x78;
telemetry[1] = tc[0];
telemetry[2] = ACK_CODE;
telemetry[3] = 0x00;
@@ -873,8 +894,8 @@
telemetry[i]=0x00;
}
crc16 = CRC::crc16_gen(telemetry,132);
- telemetry[133] = (uint8_t)((crc16&0xFF00)>>8);
- telemetry[134] = (uint8_t)(crc16&0x00FF);
+ telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
+ telemetry[133] = (uint8_t)(crc16&0x00FF);
break;
}
case 0xE1:
@@ -897,7 +918,7 @@
DRV_Z_EN = 1;
DRV_XY_EN = 1;
- telemetry[0]=0xF0;
+ telemetry[0]=0x78;
telemetry[1]=tc[0];
telemetry[2]=ACK_CODE;
telemetry[3] = 0x00;
@@ -1250,8 +1271,8 @@
}
crc16 = CRC::crc16_gen(telemetry,132);
- telemetry[133] = (uint8_t)((crc16&0xFF00)>>8);
- telemetry[134] = (uint8_t)(crc16&0x00FF);
+ telemetry[132] = (uint8_t)((crc16&0xFF00)>>8);
+ telemetry[133] = (uint8_t)(crc16&0x00FF);
break;
}
case 0xE2:
@@ -1545,6 +1566,7 @@
ATS PIN OR STATUS YET TO BE DECIDED. DECIDED THAT IT IS PIN TC CAN SWITCH ON/OFF THE SENSOR
*/
ATS2_SW_ENABLE = 1; // making sure we switch off the other
+ wait_ms(5);
//ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF3) | 0x0C ;
ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF0) | 0x0C ;
ATS1_SW_ENABLE = 0;
@@ -1571,6 +1593,7 @@
telemetry[0]=0xB0;
telemetry[1]=tc[0];
ATS1_SW_ENABLE = 1; //make sure u switch off the other
+ wait_ms(5);
ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x0F) | 0xC0 ;
ATS2_SW_ENABLE = 0;
ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF0)|0x04;
@@ -1812,7 +1835,7 @@
}
break;
}
- case 0x33:
+ case 0x44:
{
printf("\n\rACS_TR_XY_SW_RESET");
//ACK_L234_TM
@@ -1933,7 +1956,7 @@
}
break;
}
- case 0x40:
+ case 0x33:
{
uint8_t STANDBY_DATA_TC;
BAE_STANDBY=0x00;
@@ -1941,23 +1964,24 @@
if(STANDBY_DATA_TC==0x01)
{
BAE_STANDBY |=0x04;
- BAE_STANDBY_TIMER_RESET();
+ //BAE_STANDBY_TIMER_RESET();
//BAE_STANDBY_TIMER();//to be created to make all sensor on after 20 minutes
}
STANDBY_DATA_TC=tc[5];
if(STANDBY_DATA_TC==0x01)
{
BAE_STANDBY |=0x02;
- BAE_STANDBY_TIMER_RESET();
+ //BAE_STANDBY_TIMER_RESET();
//BAE_STANDBY_TIMER();//to be created to make all sensor on after 20 minutes
}
STANDBY_DATA_TC=tc[6];
if(STANDBY_DATA_TC==0x01)
{
BAE_STANDBY |=0x01;
- BAE_STANDBY_TIMER_RESET();
+ //BAE_STANDBY_TIMER_RESET();
//BAE_STANDBY_TIMER();//to be created to make all sensor on after 20 minutes
}
+ printf("BAE_STANDBY : %X\r\n",BAE_STANDBY);
telemetry[0]=0xB0;
telemetry[1]=tc[0];
telemetry[2]=0xC0;//ack_code for this case
