133,14 → 133,55 |
|
//#define NOFCOMMUNICATION |
#ifndef NOFCOMMUNICATION |
usart1_request_blocking('Q', PSTR(REQUEST_CURRENT_SETTING)); |
memcpy((char*)(&setting), (char*)pRxData, sizeof(paramset_serial)); |
//setting = *((paramset_serial*)pRxData); |
#else |
// manual stuff? |
memcpy((char*)setting.param.Name, "NO FC COMMUN", 12); |
setting.param.UnterspannungsWarnung = 94; |
#endif // #ifndef NOFCOMMUNICATION |
//write_ascii_char(4 + 12 * 30, rxd_buffer[2]); |
|
|
|
write_ndigit_number_u(10, 7, setting.SettingsIndex, 1, 1); |
write_ascii_string_len(13, 7, setting.param.Name, 12); |
|
uint8_t cells = 0; |
if (CELL_NUM == -1) { |
#define MAX_CELL_VOLTAGE 43 // max cell volatage for LiPO |
|
if (setting.param.UnterspannungsWarnung < 50) { |
// up to 6s LiPo, less than 2s is technical impossible |
for (cells = 2; cells < 7; cells++) { |
if (UBat < cells * MAX_CELL_VOLTAGE) break; |
} |
|
min_voltage = cells * setting.param.UnterspannungsWarnung; |
} else { |
min_voltage = setting.param.UnterspannungsWarnung; |
cells = min_voltage / CELL_VOLT_MIN; |
} |
//write_ndigit_number_u(10, 13, setting.param.UnterspannungsWarnung, 3, 1); |
} else { |
cells = CELL_NUM; |
min_voltage = cells * CELL_VOLT_MIN; |
} |
|
max_voltage = cells * CELL_VOLT_MAX; |
|
write_ndigit_number_u(11, 8, cells, 1, 0); |
write_ndigit_number_s_10th(8, 9, min_voltage, 3, 0); |
write_ndigit_number_s_10th(20, 9, max_voltage, 3, 0); |
|
|
|
// request version from board |
#if FCONLY |
//usart1_request_mk_data(0, 'v', 0); |
write_ascii_string_pgm(2, 11, PSTR("FC VERSION: ........")); |
//usart1_request_blocking('V', PSTR(REQUEST_FC_VERSION)); |
usart1_request_blocking('V', PSTR(REQUEST_FC_VERSION)); |
#else |
usart1_request_nc_uart(); |
_delay_ms(200); |