Как обращаться к заранее определенным массивам и использовать их в пустоте? ⇐ C++
Как обращаться к заранее определенным массивам и использовать их в пустоте?
Я новичок в C++, и у меня есть небольшая программа для сопоставления определенного значения с использованием диапазона строк. моя программа следующая:
// объявление нескольких наборов массивов (Volt и SOC) разных размеров в основном скетче #define LFP_LEN 15 #define LION_LEN 21 const uint8_t MapSOCLFP[LFP_LEN] PROGMEM = {0, 1, 5, 10, 14, 20, 30, 40, 50, 60, 70, 80, 90, 99, 100}; // массив для поддержания уровня SOC const uint8_t MapSOCLion[LION_LEN] PROGMEM = {0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100 }; const uint16_t MapVoltLFP[LFP_LEN] PROGMEM = {2500, 2538, 2800, 3000, 3150, 3200, 3225, 3250, 3263, 3275, 3300, 3325, 3350, 3375, 3450}; // Сохраняем ячейку в милливольтах для отображения LFP const uint16_t MapVoltLion[LION_LEN] PROGMEM = {3000, 3062, 3123, 3177, 3238, 3300, 3362, 3423, 3477, 3538, 3600, 3662, 3723, 3777, 3838, 3900, 39 62, 4023, 4077, 4138, 4200 }; ////////конец объявления /// и это функция для возврата базы линейного сопоставления по типу батареи uint16_t getMappedSOC(uint8_t BatteryType, uint16_t RefVoltage){ //uint16_t RefVoltage = 0; uint16_t* pMapVol; uint8_t* pMapSOC; uint8_t arrLength; if (BatteryType == 0) { //Serial.println(F("")); arrLength = LFP_LEN; pMapVol = MapVoltLFP; pMapSOC = MapSOCLFP; }else if (JKComputedData.BatteryType == 1) {//Serial.println(F(">")); arrLength = LION_LEN; pMapVol = MapVoltLion; pMapSOC = MapSOCLion; } // эта часть будет сравнивать RefVoltage с точками данных, хранящимися в предопределенных массивах, как указано выше for (uint8_t ptr = 3; ptr < arrLength - 1; ptr++){ //Остановимся на 80% if(RefVoltage >= pMapVol[ptr] && RefVoltage
Я новичок в C++, и у меня есть небольшая программа для сопоставления определенного значения с использованием диапазона строк. моя программа следующая:
// объявление нескольких наборов массивов (Volt и SOC) разных размеров в основном скетче #define LFP_LEN 15 #define LION_LEN 21 const uint8_t MapSOCLFP[LFP_LEN] PROGMEM = {0, 1, 5, 10, 14, 20, 30, 40, 50, 60, 70, 80, 90, 99, 100}; // массив для поддержания уровня SOC const uint8_t MapSOCLion[LION_LEN] PROGMEM = {0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100 }; const uint16_t MapVoltLFP[LFP_LEN] PROGMEM = {2500, 2538, 2800, 3000, 3150, 3200, 3225, 3250, 3263, 3275, 3300, 3325, 3350, 3375, 3450}; // Сохраняем ячейку в милливольтах для отображения LFP const uint16_t MapVoltLion[LION_LEN] PROGMEM = {3000, 3062, 3123, 3177, 3238, 3300, 3362, 3423, 3477, 3538, 3600, 3662, 3723, 3777, 3838, 3900, 39 62, 4023, 4077, 4138, 4200 }; ////////конец объявления /// и это функция для возврата базы линейного сопоставления по типу батареи uint16_t getMappedSOC(uint8_t BatteryType, uint16_t RefVoltage){ //uint16_t RefVoltage = 0; uint16_t* pMapVol; uint8_t* pMapSOC; uint8_t arrLength; if (BatteryType == 0) { //Serial.println(F("")); arrLength = LFP_LEN; pMapVol = MapVoltLFP; pMapSOC = MapSOCLFP; }else if (JKComputedData.BatteryType == 1) {//Serial.println(F(">")); arrLength = LION_LEN; pMapVol = MapVoltLion; pMapSOC = MapSOCLion; } // эта часть будет сравнивать RefVoltage с точками данных, хранящимися в предопределенных массивах, как указано выше for (uint8_t ptr = 3; ptr < arrLength - 1; ptr++){ //Остановимся на 80% if(RefVoltage >= pMapVol[ptr] && RefVoltage
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
В то время как (правда); петля бросает недоступный код, когда не в пустоте
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Pandas объединяет несколько файлов Excel в папке по заранее определенным листам
Anonymous » » в форуме Python - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-