/*
bool 1 байт 0 или 1 / true или false
char 1 байт -128… 127 / Символ (код символа) из таблицы ASCII
int8_t 1 байт -128… 127 / Целые числа
uint8_t 1 байт 0… 255 / Целые числа
int16_t 2 байт -32 768… 32 767 / Целые числа
uint16_t 2 байт 0… 65 535 / Целые числа
int32_t 4 байт -2 147 483 648 … 2 147 483 647 / Целые числа
uint32_t 4 байт 0 … 4 294 967 295 / Целые числа
float 4 байт -3.4E+38… 3.4E+38 / Числа с плавающей точкой, точность: 6-7 знаков
itoa(int_data, str, base) - int int_data в строку str с базисом* base.
utoa(uint_data, str, base) - unsigned int uint_data в строку str с базисом* base.
ltoa (long_data, str, base) - long long_data в строку str с базисом* base.
ultoa (unsigned_long_data, str, base) - unsigned long unsigned_long_data в строку str с базисом* base.
dtostrf(float_data, width, dec, str) - float float_data в строку str с количеством символов width и знаков после запятой dec.
* Примечание: base - основание системы счисления, тут всё как при выводе в Serial:
DEC - десятичная
BIN - двоичная
OCT - восьмеричная
HEX - шестнадцатеричная
atoi(str) - str в int
atol(str) - str в long
atof(str) - str в float
sizeof(buf_doza)); // байт
strlen(buf_doza)); // "читаемых" символов
5915
*/
float mL_imp = 1.001; // koef (ml / 1 imp)
float doza = 9876.321; // max DOZA (litr)
uint32_t i_doza = 0;
uint32_t rez = 0;
char buff[20];
char buf_doza[8];
uint16_t K_dat = 553; // koef (imp-s / 1 Litr)
uint16_t koef_R = 0; // koef_R 60.0 * 10 000 / K_dat
// koef_R = 10000 * 60.0 / K_dat;
uint16_t imp_T = 0; // period format fix point = 1000 000 micro_sec/ 100
uint16_t rashod_L = 0; // rashod ( litr / minute )
uint16_t imp_T_test[] = // get_imp-s ... count total imp-s
{99999, 1086, 1085, 1084, 600, 500, 400, 35, 34, 33};
// rashod_L = koef_R / imp_T; // imp_T_test[i];
uint32_t imp_S[] = // get_imp-s ... count total imp-s
{100, 200, 300, 1000, 2000, 3000, 10000, 20000, 30000, 100000, 200000, 300000, 999999, 1000000, 2000000, 3000000};
uint16_t imp_R = 0;
// imp_R = 10*imp_S[i]/K_dat;
void setup() {
Serial.begin(9600); // открываем последовательное соединение
koef_R = 10000 * 60.0 / K_dat;
Serial.println(koef_R);
// Serial.println(sizeof(imp_S));
Serial.println(sizeof(imp_T_test));
// for (int i = 0; i < sizeof(imp_S)/4; i++) {
for (int i = 0; i < sizeof(imp_T_test)/2; i++) {
Serial.print(" ____ ");
imp_T = imp_T_test[i];
Serial.println(imp_T);
imp_R = koef_R / imp_T;
Serial.println(imp_R);
}
/*
i_doza = 1000.0 * doza;
Serial.println("_______________7");
Serial.println((i_doza/1) % 10);
Serial.println((i_doza/10) % 10);
Serial.println((i_doza/100) % 10);
Serial.println((i_doza/1000) % 10);
Serial.println((i_doza/10000) % 10);
Serial.println((i_doza/100000) % 10);
Serial.println((i_doza/1000000) % 10);
Serial.println((i_doza/10000000) % 10);
Serial.println("_______1________");
dtostrf(doza, 1, 3, buf_doza);
Serial.println(buf_doza);
//Serial.println(sizeof(buf_doza)); // байт
Serial.println(strlen(buf_doza)); // "читаемых" символов
Serial.println("_______________1");
float buf_doza = 1000.0 * doza;
Serial.println(buf_doza, DEC);
Serial.println("_______________2");
rez = trunc((buf_doza / mL_imp));
Serial.println(rez);
Serial.println("_______________3");
rez = 5555;
sprintf(buff, "rez: %d", rez);
Serial.println(buff);
char bf[1];
Serial.println("_______________4");
itoa(rez, bf, 10);
Serial.println(bf);
Serial.println("_______________5");
dtostrf(doza, 6, 3, bf);
Serial.println(bf);
Serial.println("_______________6");
Serial.print(bf[0]); Serial.print(" ");
Serial.print(bf[1]); Serial.print(" ");
Serial.print(bf[2]); Serial.print(" ");
Serial.print(bf[3]); Serial.print(" ");
Serial.print(bf[4]); Serial.print(" ");
Serial.print(bf[5]); Serial.print(" ");
Serial.print(bf[6]); Serial.print(" ");
Serial.print(bf[7]); Serial.print(" ");
Serial.println(bf[8]);
i_doza = 1000.0 * doza;
Serial.println("_______________7");
Serial.println((i_doza/1) % 10);
Serial.println((i_doza/10) % 10);
Serial.println((i_doza/100) % 10);
Serial.println((i_doza/1000) % 10);
Serial.println((i_doza/10000) % 10);
Serial.println((i_doza/100000) % 10);
Serial.println((i_doza/1000000) % 10);
Serial.println((i_doza/10000000) % 10);
*/
}
void loop() {
// put your main code here, to run repeatedly:
}