From 6c261ff7c60c8d6c71514ea258f44a73a5c6753d Mon Sep 17 00:00:00 2001 From: eddyem Date: Thu, 2 Aug 2018 21:55:24 +0300 Subject: [PATCH] add some CAN commands --- STM32/TSYS_controller/Readme.md | 29 +++--- STM32/TSYS_controller/can.c | 4 +- STM32/TSYS_controller/can.h | 12 +-- STM32/TSYS_controller/can_process.c | 33 ++++++- STM32/TSYS_controller/can_process.h | 7 ++ STM32/TSYS_controller/main.c | 118 +++++++++++++------------ STM32/TSYS_controller/sensors_manage.c | 72 +++------------ STM32/TSYS_controller/sensors_manage.h | 4 +- STM32/TSYS_controller/tsys01.bin | Bin 14412 -> 14892 bytes STM32/TSYS_controller/tsys01.c.tags | 80 +++++++++++------ STM32/TSYS_controller/tsys01.geany | 22 ++--- 11 files changed, 199 insertions(+), 182 deletions(-) diff --git a/STM32/TSYS_controller/Readme.md b/STM32/TSYS_controller/Readme.md index eac93e7..1718406 100644 --- a/STM32/TSYS_controller/Readme.md +++ b/STM32/TSYS_controller/Readme.md @@ -3,24 +3,23 @@ Make regular scan of 8 sensors' pairs. USART speed 115200. Code for ../../kicad/stm32 -### Serial interface commands (ends with '\n'): -- **0...9** - wait measurements of T from Nth controller (0==T for master) -- **A** send everybody to start T measurement +### Serial interface commands (ends with '\n'), small letter for only local processing: +- **0...9** - wait measurements of T from Nth controller (0==current controller) - **B** send dummy CAN messages to broadcast address -- **C** show coefficients for all thermosensors +- **c** show coefficients for all thermosensors - **D** send dummy CAN messages to master (0) address -- **E** end temperature scan -- **F** turn sensors off -- **G** get CAN address -- **H** switch I2C to high speed (100kHz) -- **I** reinit CAN -- **L** switch I2C to low speed (default, 10kHz) -- **O** turn sensors on +- **Ee** end temperature scan +- **Ff** turn sensors off +- **g** get last CAN address +- **Hh** switch I2C to high speed (100kHz) +- **i** reinit CAN +- **Ll** switch I2C to low speed (default, 10kHz) - **P** ping everyone over CAN -- **R** reinit I2C -- **S** start temperature scan -- **T** start single temperature measurement -- **V** very low speed +- **Rr** reinit I2C +- **Ss** start temperature scan +- **Tt** start single temperature measurement +- **u** check CAN bus status for errors +- **Vv** very low speed - **Z** get sensors state over CAN ### PINOUT diff --git a/STM32/TSYS_controller/can.c b/STM32/TSYS_controller/can.c index c09e7ed..60b23e8 100644 --- a/STM32/TSYS_controller/can.c +++ b/STM32/TSYS_controller/can.c @@ -160,15 +160,13 @@ void can_proc(){ can_process_fifo(1); } if(CAN->ESR & (CAN_ESR_BOFF | CAN_ESR_EPVF | CAN_ESR_EWGF)){ // much errors - restart CAN BUS - LED_off(LED1); MSG("bus-off, restarting\n"); -#pragma message "TODO: let 2 know main() about problems in CANbus" // request abort for all mailboxes CAN->TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2; // reset CAN bus RCC->APB1RSTR |= RCC_APB1RSTR_CANRST; RCC->APB1RSTR &= ~RCC_APB1RSTR_CANRST; - CAN_setup(); + can_status = CAN_ERROR; } #ifdef EBUG static uint32_t esr, msr, tsr; diff --git a/STM32/TSYS_controller/can.h b/STM32/TSYS_controller/can.h index f347fe9..d885b51 100644 --- a/STM32/TSYS_controller/can.h +++ b/STM32/TSYS_controller/can.h @@ -43,11 +43,13 @@ typedef struct{ } CAN_message; typedef enum{ - CAN_STOP, - CAN_READY, - CAN_BUSY, - CAN_OK, - CAN_FIFO_OVERRUN + CAN_NOTMASTER, // can't send command - not a mastar + CAN_STOP, // CAN stopped + CAN_READY, // ready to send + CAN_BUSY, // bus is busy + CAN_OK, // all OK? + CAN_FIFO_OVERRUN, // FIFO overrun + CAN_ERROR // no recipients on bus or too many errors } CAN_status; CAN_status CAN_get_status(); diff --git a/STM32/TSYS_controller/can_process.c b/STM32/TSYS_controller/can_process.c index df1d43d..3b19e1a 100644 --- a/STM32/TSYS_controller/can_process.c +++ b/STM32/TSYS_controller/can_process.c @@ -62,6 +62,27 @@ void can_messages_proc(){ case CMD_START_MEASUREMENT: sensors_start(); break; + case CMD_START_SCAN: + sensors_scan_mode = 1; + break; + case CMD_STOP_SCAN: + sensors_scan_mode = 0; + break; + case CMD_SENSORS_OFF: + sensors_off(); + break; + case CMD_LOWEST_SPEED: + i2c_setup(VERYLOW_SPEED); + break; + case CMD_LOW_SPEED: + i2c_setup(LOW_SPEED); + break; + case CMD_HIGH_SPEED: + i2c_setup(HIGH_SPEED); + break; + case CMD_REINIT_I2C: + i2c_setup(CURRENT_SPEED); + break; } }else if(data[0] == DATA_MARK){ // process received data if(len < 3) return; @@ -115,7 +136,7 @@ static CAN_status try2send(uint8_t *buf, uint8_t len, uint16_t id){ * @param cmd - command to send */ CAN_status can_send_cmd(uint16_t targetID, uint8_t cmd){ - if(Controller_address != 0 && cmd != CMD_DUMMY0 && cmd != CMD_DUMMY1) return CAN_OK; + if(Controller_address != 0 && cmd != CMD_DUMMY0 && cmd != CMD_DUMMY1) return CAN_NOTMASTER; uint8_t buf[2]; buf[0] = COMMAND_MARK; buf[1] = cmd; @@ -163,10 +184,14 @@ int8_t send_temperatures(int8_t N){ can_data[1] = a*10 + p; //char b[] = {'T', a+'0', p+'0', '=', '+'}; int16_t t = Temperatures[a][p]; - can_data[2] = t>>8; // H byte - can_data[3] = t&0xff; // L byte - if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address + if(t == BAD_TEMPERATURE || t == NO_SENSOR){ // don't send data if it's absent on current measurement ++retn; + }else{ + can_data[2] = t>>8; // H byte + can_data[3] = t&0xff; // L byte + if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address + ++retn; + } } return retn; } diff --git a/STM32/TSYS_controller/can_process.h b/STM32/TSYS_controller/can_process.h index 4917e8a..f9a161c 100644 --- a/STM32/TSYS_controller/can_process.h +++ b/STM32/TSYS_controller/can_process.h @@ -34,6 +34,13 @@ typedef enum{ CMD_PING, // request for PONG cmd CMD_START_MEASUREMENT, // start thermal measurement CMD_SENSORS_STATE, // reply data with sensors state + CMD_START_SCAN, // run scan mode @ all controllers + CMD_STOP_SCAN, // stop scan mode + CMD_SENSORS_OFF, // turn off power of sensors + CMD_LOWEST_SPEED, // lowest I2C speed + CMD_LOW_SPEED, // low I2C speed (10kHz) + CMD_HIGH_SPEED, // high I2C speed (100kHz) + CMD_REINIT_I2C, // reinit I2C with current speed // dummy commands for test purposes CMD_DUMMY0 = 0xDA, CMD_DUMMY1 = 0xAD diff --git a/STM32/TSYS_controller/main.c b/STM32/TSYS_controller/main.c index 1d8686d..50f49cb 100644 --- a/STM32/TSYS_controller/main.c +++ b/STM32/TSYS_controller/main.c @@ -72,7 +72,7 @@ void CANsend(uint16_t targetID, uint8_t cmd, char echo){ int main(void){ uint32_t lastT = 0, lastS = 0; int16_t L = 0, ID; - uint8_t gotmeasurement = 0; + uint8_t gotmeasurement = 0, canerror = 0; char *txt; sysreset(); SysTick_Config(6000, 1); @@ -107,24 +107,23 @@ int main(void){ lastS = Tms; } can_proc(); - if(CAN_get_status() == CAN_FIFO_OVERRUN){ + CAN_status stat = CAN_get_status(); + if(stat == CAN_FIFO_OVERRUN){ SEND("CAN bus fifo overrun occured!\n"); + }else if(stat == CAN_ERROR){ + LED_off(LED1); + CAN_setup(); + canerror = 1; } can_messages_proc(); - //if(sensors_scan_mode){ - if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence - if(!gotmeasurement){ - //SEND("\nTIME="); - //printu(Tms); - //usart_putchar('\t'); - //newline(); - gotmeasurement = 1; - showtemperature(); - } - }else{ - gotmeasurement = 0; + if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence + if(!gotmeasurement){ + gotmeasurement = 1; + showtemperature(); } - //} + }else{ + gotmeasurement = 0; + } if(usartrx()){ // usart1 received data, store in in buffer L = usart_getline(&txt); char _1st = txt[0]; @@ -134,109 +133,112 @@ int main(void){ ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0'); CANsend(ID, CMD_START_MEASUREMENT, _1st); }else switch(_1st){ - case 'A': - CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st); - if(!sensors_scan_mode) sensors_start(); - break; case 'B': CANsend(BCAST_ID, CMD_DUMMY0, _1st); break; - case 'C': // 'C' - show coefficients + case 'c': showcoeffs(); break; case 'D': CANsend(MASTER_ID, CMD_DUMMY1, _1st); break; case 'E': + CANsend(BCAST_ID, CMD_STOP_SCAN, _1st); + case 'e': SEND("End scan mode\n"); sensors_scan_mode = 0; break; case 'F': + CANsend(BCAST_ID, CMD_SENSORS_OFF, _1st); + case 'f': + SEND("Turn off sensors\n"); sensors_off(); break; - case 'G': + case 'g': SEND("Can address: "); printuhex(getCANID()); newline(); break; case 'H': + CANsend(BCAST_ID, CMD_HIGH_SPEED, _1st); + case 'h': i2c_setup(HIGH_SPEED); SEND("High speed\n"); break; - case 'I': + case 'i': CAN_reinit(); SEND("Can address: "); printuhex(getCANID()); newline(); break; case 'L': + CANsend(BCAST_ID, CMD_LOW_SPEED, _1st); + case 'l': i2c_setup(LOW_SPEED); SEND("Low speed\n"); break; - case 'O': + /*case 'o': sensors_on(); - break; + break;*/ case 'P': CANsend(BCAST_ID, CMD_PING, _1st); break; case 'R': + CANsend(BCAST_ID, CMD_REINIT_I2C, _1st); + case 'r': i2c_setup(CURRENT_SPEED); SEND("Reinit I2C\n"); break; case 'S': + CANsend(BCAST_ID, CMD_START_SCAN, _1st); + case 's': SEND("Start scan mode\n"); sensors_scan_mode = 1; break; + case 'T': + CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st); case '0': - case 'T': // 'T' - get temperature + case 't': if(!sensors_scan_mode) sensors_start(); break; + case 'u': + SEND("CANERROR="); + if(canerror){ + canerror = 0; + usart_putchar('1'); + }else usart_putchar('0'); + newline(); + break; case 'V': + CANsend(BCAST_ID, CMD_LOWEST_SPEED, _1st); + case 'v': i2c_setup(VERYLOW_SPEED); SEND("Very low speed\n"); break; case 'Z': CANsend(BCAST_ID, CMD_SENSORS_STATE, _1st); break; -#if 0 - case 'd': - case 'g': - case 't': - case 's': - senstest(_1st); - break; - case 'p': - sensors_process(); - break; -#endif default: // help SEND( - "0..7 - start measurement on given controller\n" - "A - start measurement on all controllers\n" + "ALL little letters - without CAN messaging\n" + "0..7 - start measurement on given controller (0 - this)\n" "B - send broadcast CAN dummy message\n" - "C - show coefficients\n" + "c - show coefficients (current)\n" "D - send CAN dummy message to master\n" - "E - end themperature scan\n" - "F - turn oFf sensors\n" - "G - get CAN address\n" - "H - high speed\n" - "I - reinit CAN\n" - "L - low speed\n" - "O - turn On sensors\n" + "Ee- end themperature scan\n" + "Ff- turn oFf sensors\n" + "g - get last CAN address\n" + "Hh- high I2C speed\n" + "i - reinit CAN (with new address)\n" + "Ll- low I2C speed\n" + // "o - turn On sensors\n" "P - ping everyone over CAN\n" - "R - reinit I2C\n" - "S - Start themperature scan\n" - "T - start temperature measurement\n" - "V - very low speed\n" + "Rr- reinit I2C\n" + "Ss- Start themperature scan\n" + "Tt- start temperature measurement\n" + "u - check CAN status for errors\n" + "Vv- very low I2C speed\n" "Z - get sensors state over CAN\n" -#if 0 - "\t\tTEST OPTIONS\n" - "d - discovery\n" - "g - get coeff\n" - "t - measure temper\n" - "s - show temper measured\n" - "p - sensors_process()\n" -#endif ); break; } diff --git a/STM32/TSYS_controller/sensors_manage.c b/STM32/TSYS_controller/sensors_manage.c index ba0ca72..71a29d7 100644 --- a/STM32/TSYS_controller/sensors_manage.c +++ b/STM32/TSYS_controller/sensors_manage.c @@ -117,16 +117,6 @@ void sensors_start(){ } } -/* / count bits in byte -static uint8_t bitCount(uint8_t B){ - uint8_t ctr = 0; - while(B){ - ++ctr; - B &= (B - 1); - } - return ctr; -}*/ - // count 1 bits in sens_present & set `Nsens_present` to this value static void count_sensors(){ Nsens_present = 0; @@ -135,10 +125,6 @@ static void count_sensors(){ ++Nsens_present; B &= (B - 1); } - /* / reset temperature values - uint16_t *t = Temperatures; - for(B = 0; B < 2*(MUL_MAX_ADDRESS+1); ++B) - *t++ = BAD_TEMPERATURE; */ } /** @@ -415,14 +401,8 @@ SEND(" sensors ->start\n"); case SENS_GATHERING: // scan all sensors, get thermal data & calculate temperature if(sensors_scan(gettempproc)){ lastSensT = Tms; - if(Nsens_present != Ntemp_measured){ - i2c_setup(CURRENT_SPEED); - sensors_on(); - } - else{ - NsentOverCAN = 0; - Sstate = SENS_SLEEPING; - } + NsentOverCAN = 0; + Sstate = SENS_SLEEPING; //MSG("->sleep\n"); /* if(Nsens_present == Ntemp_measured){ // All OK, amount of T == amount of sensors @@ -437,10 +417,16 @@ MSG("gather error ->start\n"); break; case SENS_SLEEPING: // wait for `SLEEP_TIME` till next measurements NsentOverCAN = send_temperatures(NsentOverCAN); // call sending T process - if(sensors_scan_mode){ // sleep until next measurement start - if(Tms - lastSensT > SLEEP_TIME){ - //MSG("sleep->start\n"); - Sstate = SENS_START_MSRMNT; + if(NsentOverCAN == -1){ + if(Nsens_present != Ntemp_measured){ // restart sensors only after measurements sent + i2c_setup(CURRENT_SPEED); + sensors_on(); + } + if(sensors_scan_mode){ // sleep until next measurement start + if(Tms - lastSensT > SLEEP_TIME){ +//MSG("sleep->start\n"); + Sstate = SENS_START_MSRMNT; + } } } break; @@ -452,37 +438,3 @@ MSG("gather error ->start\n"); break; } } - -#if 0 -void senstest(char cmd){ - MUL_OFF(); - SENSORS_ON(); - if(SENSORS_OVERCURNT()){ - SENSORS_OFF(); - SEND("Overcurrent!\n"); - return; - } - curr_mul_addr = 0; - MUL_ADDRESS(0); - MUL_ON(); - switch (cmd){ - case 'd': // discovery once - resetproc(); - count_sensors(); - break; - case 'g': - getcoefsproc(); - break; - case 't': - msrtempproc(); - break; - case 's': - gettempproc(); - showtemperature(); - break; - default: - return; - } - Sstate = SENS_OFF; -} -#endif diff --git a/STM32/TSYS_controller/sensors_manage.h b/STM32/TSYS_controller/sensors_manage.h index 358343f..6ff4b68 100644 --- a/STM32/TSYS_controller/sensors_manage.h +++ b/STM32/TSYS_controller/sensors_manage.h @@ -28,8 +28,8 @@ // time for power up procedure (500ms) #define POWERUP_TIME (500) -// time between two readings (3sec) -#define SLEEP_TIME (3000) +// time between readings in scan mode (15sec) +#define SLEEP_TIME (15000) // error in measurement == -300degrC #define BAD_TEMPERATURE (-30000) // no sensor on given channel diff --git a/STM32/TSYS_controller/tsys01.bin b/STM32/TSYS_controller/tsys01.bin index 9e77c04599697d1ac4e12e1b7b5b8ff870acb8f9..677052a848763143fbf3c8a38e07860d50380620 100755 GIT binary patch delta 4134 zcmb_fdsGuw8ozgvKnMbnheCKbGZ6?x6a_6vZ86apGC?U?Mc8U01}BIR0o&Nq-B9he z*0o#hXiK5pK29ILx<|28+bz4E(^}oFZYQ;^JZy`tWjsCIc51r?Ldfhl0av?w&hGxP zob%)R?svb}{qDWrot*a^ZPlV=ME2>B`eT3}uy1Or56J^G`6u&lDkmmoh5v@*|AWqd z_K}Fxi&Aa|I-Vr+$N#9siswg_oF6Aln=ytBqr8GtzP;BX_MEm%L5LhIR8;go*+vy=`5{vbr;JmX&li9H^;k?8KgdKf%_(-y6ttS}~lr(%f^rLXvB7l8< zw+ih%h79CDCX?z##xx%5@lg$>_h9j{pt(y!mYS-}r747=kWVkilwuGUaD$3mU%V|f zc?+sRdC8sYw6?!>xjdXHhL5#zCJnEPS30h%{ch zjL0*B9R4aG5y0=3q-zgL5@AbVaY2H^vuxtPX}c4VG~6aB4T#tF$W`td#p3DFk#&$i zro`^gENd*wElVvQF@xPY_9LsttaDVezdlBkRy%a8-%6C~fbwBl&3*thj;wa{*Y7a* zZ_sT%FUxBY-QlR-yxUw|`)8YW?o_Zp$6Zv;nbBosW)sV znUfr)O7ZO($721cd=B3n$8>Fdg1L6XiwvH(wq9cj@`srtWho9B)sDlq4o5$Wa)bUu zHk|{GLFk}8C445+M&)aP#DgI$#=~aM8{Nm$)OVtYkDs?khc%+Z8hb!G0McjdQ^HaN zQZQ`OKWwW}-c^sXqs=QfAU)=uwzOOJGyBUsExVch%R4M9Eql1nRnvWsm3^qRx)sWV z(l+`-w8NZW{*CidYds#LSS&kj_UK z@_A|a%s3L0#uNscNBXBNHI`Hs8Q!G1kBf(_k%Mf-@5 z;iK|F@GJ;E^=E|nr-1)~|3qLc$T$GEmkMHV_=(U)*D~?A!->SS5S&Nuj9~U^jFA9h)C=k!)HPoU1K=PXNUB~@jWhW`|brPf%n=my_VRsG$z1kW~M zC9R-*cfs_rkd~^1>FV$_)-Q+YI>AD#s4|#+AvBd@V3wIM77qog1Z!CtNK7C>{9VG* zvZXL8fzfr|CPYzY7!^+V>O@B5zce_P#A5LX7MG34dr>6BP$i&4kKhgAUH(0sm}EG_ zMI%OG6^*G`5VkHfD}4J9PeFr78Osn>(-BlA%&ZN`t>U3z9AyM2C>$tGI7}{~U!&UK zYLtc4f{E^@bf9Yv5!~6x#Xj`{q@D@L2NYsN%ALCuc%(#DDH5S?pjQk7b%0FnA*X

A?XNShwp?ngFPAN+mj*Lg>C}jRT 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 CH{OW= diff --git a/STM32/TSYS_controller/tsys01.c.tags b/STM32/TSYS_controller/tsys01.c.tags index dbf2e3b..953e6e7 100644 --- a/STM32/TSYS_controller/tsys01.c.tags +++ b/STM32/TSYS_controller/tsys01.c.tags @@ -94,7 +94,7 @@ ADC_TR_HT ADC_TR_LTÌ65536Ö0 AHB2PERIPH_BASEÌ65536Ö0 AHBPERIPH_BASEÌ65536Ö0 -ALL_OKÌ4Îanon_enum_5Ö0 +ALL_OKÌ4Îanon_enum_3Ö0 APBPERIPH_BASEÌ65536Ö0 BAD_TEMPERATUREÌ65536Ö0 BCAST_IDÌ65536Ö0 @@ -117,6 +117,7 @@ CAN_BTR_TS2_0 CAN_BTR_TS2_1Ì65536Ö0 CAN_BTR_TS2_2Ì65536Ö0 CAN_BUSYÌ4Îanon_enum_2Ö0 +CAN_ERRORÌ4Îanon_enum_2Ö0 CAN_ESR_BOFFÌ65536Ö0 CAN_ESR_EPVFÌ65536Ö0 CAN_ESR_EWGFÌ65536Ö0 @@ -1119,6 +1120,7 @@ CAN_MSR_SLAK CAN_MSR_SLAKIÌ65536Ö0 CAN_MSR_TXMÌ65536Ö0 CAN_MSR_WKUIÌ65536Ö0 +CAN_NOTMASTERÌ4Îanon_enum_2Ö0 CAN_OKÌ4Îanon_enum_2Ö0 CAN_RDH0R_DATA4Ì65536Ö0 CAN_RDH0R_DATA5Ì65536Ö0 @@ -1289,26 +1291,54 @@ CEC_TXDR_RXD CEC_TXDR_TXDÌ65536Ö0 CLEAR_BITÌ131072Í(REG,BIT)Ö0 CLEAR_REGÌ131072Í(REG)Ö0 -CMD_DUMMY0Ì4Îanon_enum_3Ö0 -CMD_DUMMY0Ì4Îanon_enum_6Ö0 +CMD_DUMMY0Ì4Îanon_enum_4Ö0 +CMD_DUMMY0Ì4Îanon_enum_5Ö0 CMD_DUMMY0Ì4Îanon_enum_7Ö0 CMD_DUMMY0Ì4Îanon_enum_8Ö0 -CMD_DUMMY1Ì4Îanon_enum_3Ö0 -CMD_DUMMY1Ì4Îanon_enum_6Ö0 +CMD_DUMMY1Ì4Îanon_enum_4Ö0 +CMD_DUMMY1Ì4Îanon_enum_5Ö0 CMD_DUMMY1Ì4Îanon_enum_7Ö0 CMD_DUMMY1Ì4Îanon_enum_8Ö0 -CMD_PINGÌ4Îanon_enum_3Ö0 -CMD_PINGÌ4Îanon_enum_6Ö0 +CMD_HIGH_SPEEDÌ4Îanon_enum_4Ö0 +CMD_HIGH_SPEEDÌ4Îanon_enum_5Ö0 +CMD_HIGH_SPEEDÌ4Îanon_enum_7Ö0 +CMD_HIGH_SPEEDÌ4Îanon_enum_8Ö0 +CMD_LOWEST_SPEEDÌ4Îanon_enum_4Ö0 +CMD_LOWEST_SPEEDÌ4Îanon_enum_5Ö0 +CMD_LOWEST_SPEEDÌ4Îanon_enum_7Ö0 +CMD_LOWEST_SPEEDÌ4Îanon_enum_8Ö0 +CMD_LOW_SPEEDÌ4Îanon_enum_4Ö0 +CMD_LOW_SPEEDÌ4Îanon_enum_5Ö0 +CMD_LOW_SPEEDÌ4Îanon_enum_7Ö0 +CMD_LOW_SPEEDÌ4Îanon_enum_8Ö0 +CMD_PINGÌ4Îanon_enum_4Ö0 +CMD_PINGÌ4Îanon_enum_5Ö0 CMD_PINGÌ4Îanon_enum_7Ö0 CMD_PINGÌ4Îanon_enum_8Ö0 -CMD_SENSORS_STATEÌ4Îanon_enum_3Ö0 -CMD_SENSORS_STATEÌ4Îanon_enum_6Ö0 +CMD_REINIT_I2CÌ4Îanon_enum_4Ö0 +CMD_REINIT_I2CÌ4Îanon_enum_5Ö0 +CMD_REINIT_I2CÌ4Îanon_enum_7Ö0 +CMD_REINIT_I2CÌ4Îanon_enum_8Ö0 +CMD_SENSORS_OFFÌ4Îanon_enum_4Ö0 +CMD_SENSORS_OFFÌ4Îanon_enum_5Ö0 +CMD_SENSORS_OFFÌ4Îanon_enum_7Ö0 +CMD_SENSORS_OFFÌ4Îanon_enum_8Ö0 +CMD_SENSORS_STATEÌ4Îanon_enum_4Ö0 +CMD_SENSORS_STATEÌ4Îanon_enum_5Ö0 CMD_SENSORS_STATEÌ4Îanon_enum_7Ö0 CMD_SENSORS_STATEÌ4Îanon_enum_8Ö0 -CMD_START_MEASUREMENTÌ4Îanon_enum_3Ö0 -CMD_START_MEASUREMENTÌ4Îanon_enum_6Ö0 +CMD_START_MEASUREMENTÌ4Îanon_enum_4Ö0 +CMD_START_MEASUREMENTÌ4Îanon_enum_5Ö0 CMD_START_MEASUREMENTÌ4Îanon_enum_7Ö0 CMD_START_MEASUREMENTÌ4Îanon_enum_8Ö0 +CMD_START_SCANÌ4Îanon_enum_4Ö0 +CMD_START_SCANÌ4Îanon_enum_5Ö0 +CMD_START_SCANÌ4Îanon_enum_7Ö0 +CMD_START_SCANÌ4Îanon_enum_8Ö0 +CMD_STOP_SCANÌ4Îanon_enum_4Ö0 +CMD_STOP_SCANÌ4Îanon_enum_5Ö0 +CMD_STOP_SCANÌ4Îanon_enum_7Ö0 +CMD_STOP_SCANÌ4Îanon_enum_8Ö0 COMMAND_MARKÌ65536Ö0 CONCATÌ131072Í(a,b)Ö0 CONV_TIMEÌ65536Ö0 @@ -2247,7 +2277,7 @@ LED1_port LED_blinkÌ131072Í(x)Ö0 LED_offÌ131072Í(x)Ö0 LED_onÌ131072Í(x)Ö0 -LINE_BUSYÌ4Îanon_enum_5Ö0 +LINE_BUSYÌ4Îanon_enum_3Ö0 LOW_SPEEDÌ4Îanon_enum_0Ö0 MASTER_IDÌ65536Ö0 MODIFY_REGÌ131072Í(REG,CLEARMASK,SETMASK)Ö0 @@ -2888,16 +2918,16 @@ SEND_TIMEOUT_MS SENSORS_OFFÌ131072Í()Ö0 SENSORS_ONÌ131072Í()Ö0 SENSORS_OVERCURNTÌ131072Í()Ö0 -SENS_GATHERINGÌ4Îanon_enum_4Ö0 -SENS_GET_COEFFSÌ4Îanon_enum_4Ö0 -SENS_INITINGÌ4Îanon_enum_4Ö0 -SENS_OFFÌ4Îanon_enum_4Ö0 -SENS_OVERCURNTÌ4Îanon_enum_4Ö0 -SENS_OVERCURNT_OFFÌ4Îanon_enum_4Ö0 -SENS_RESETINGÌ4Îanon_enum_4Ö0 -SENS_SLEEPINGÌ4Îanon_enum_4Ö0 -SENS_START_MSRMNTÌ4Îanon_enum_4Ö0 -SENS_WAITINGÌ4Îanon_enum_4Ö0 +SENS_GATHERINGÌ4Îanon_enum_6Ö0 +SENS_GET_COEFFSÌ4Îanon_enum_6Ö0 +SENS_INITINGÌ4Îanon_enum_6Ö0 +SENS_OFFÌ4Îanon_enum_6Ö0 +SENS_OVERCURNTÌ4Îanon_enum_6Ö0 +SENS_OVERCURNT_OFFÌ4Îanon_enum_6Ö0 +SENS_RESETINGÌ4Îanon_enum_6Ö0 +SENS_SLEEPINGÌ4Îanon_enum_6Ö0 +SENS_START_MSRMNTÌ4Îanon_enum_6Ö0 +SENS_WAITINGÌ4Îanon_enum_6Ö0 SET_BITÌ131072Í(REG,BIT)Ö0 SIG_ATOMIC_MAXÌ65536Ö0 SIG_ATOMIC_MINÌ65536Ö0 @@ -2983,7 +3013,7 @@ STM32F0 STM32F042x6Ì65536Ö0 STRÌ131072Í(s)Ö0 STR_HELPERÌ131072Í(s)Ö0 -STR_TOO_LONGÌ4Îanon_enum_5Ö0 +STR_TOO_LONGÌ4Îanon_enum_3Ö0 SYSCFGÌ65536Ö0 SYSCFG_BASEÌ65536Ö0 SYSCFG_CFGR1_ADC_DMA_RMPÌ65536Ö0 @@ -3115,7 +3145,7 @@ SYSCFG_EXTICR4_EXTI15_PB SYSCFG_EXTICR4_EXTI15_PCÌ65536Ö0 SYSCFG_EXTICR4_EXTI15_PDÌ65536Ö0 SYSCFG_EXTICR4_EXTI15_PEÌ65536Ö0 -SensorsStateÌ4096Ö0Ïanon_enum_4 +SensorsStateÌ4096Ö0Ïanon_enum_6 SstateÌ16384Ö0ÏSensorsState StartHSEÌ16Í()Ö0Ïinline void StartHSI48Ì16Í()Ö0Ïinline void @@ -3558,7 +3588,7 @@ TSYS01_ADDR1 TSYS01_PROM_ADDR0Ì65536Ö0 TSYS01_RESETÌ65536Ö0 TSYS01_START_CONVÌ65536Ö0 -TXstatusÌ4096Ö0Ïanon_enum_5 +TXstatusÌ4096Ö0Ïanon_enum_3 TaddrÌ16384Ö0Ïconst uint8_t TemperaturesÌ16384Ö0Ïint16_t TemperaturesÌ32768Ö0Ïint16_t diff --git a/STM32/TSYS_controller/tsys01.geany b/STM32/TSYS_controller/tsys01.geany index 45289f5..fff165d 100644 --- a/STM32/TSYS_controller/tsys01.geany +++ b/STM32/TSYS_controller/tsys01.geany @@ -27,16 +27,18 @@ long_line_behaviour=1 long_line_column=100 [files] -current_page=8 -FILE_NAME_0=6740;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.c;0;4 -FILE_NAME_1=1189;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.h;0;4 -FILE_NAME_2=2113;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fmain.c;0;4 -FILE_NAME_3=10188;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.c;0;4 -FILE_NAME_4=8248;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fcan.c;0;4 -FILE_NAME_5=3404;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fmain.c;0;4 -FILE_NAME_6=1593;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.c;0;4 -FILE_NAME_7=1165;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.h;0;4 -FILE_NAME_8=0;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.h;0;4 +current_page=2 +FILE_NAME_0=7848;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.c;0;4 +FILE_NAME_1=1413;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.h;0;4 +FILE_NAME_2=3014;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fmain.c;0;4 +FILE_NAME_3=3352;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.c;0;4 +FILE_NAME_4=1408;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.h;0;4 +FILE_NAME_5=2492;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.c;0;4 +FILE_NAME_6=1585;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.h;0;4 +FILE_NAME_7=2511;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fhardware.h;0;4 +FILE_NAME_8=2520;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fusart.c;0;4 +FILE_NAME_9=1049;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fusart.h;0;4 +FILE_NAME_10=196;Make;0;EUTF-8;1;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2FMakefile;0;4 [VTE] last_dir=/home/eddy