rusl32 писал(а):// смотрим десятые здесь выводит одно из temper_d
Потому как это могут оказаться данные от разных замеров из-за задержек в коде. И отличаться на те самые десятые.rusl32 писал(а):// смотрим темп здесь уже выводит другое из temper_d
Допустим в [0] - некое число А, в [1] - число B
По коду получается:
Код: Выделить всё
Замер 1
i = 0 A1 --
Выводим A одним способом -- --
пауза 2 секунды пауза
выводим A другим способом
i = 1 A1 A1
Выводим B одним способом B1 --
пауза 2 секунды пауза
выводим B другим способом
A1 A1
пауза 2 секунды B1 B1
пауза
Замер 2
i = 0 A2 A1
Выводим A одним способом B1 B1
пауза 2 секунды пауза
выводим A другим способом
i = 1 A2 A2
Выводим B одним способом B2 B1
пауза 2 секунды пауза
выводим B другим способом
A2 A2
пауза 2 секунды B2 B2
пауза
Замер 3
i = 0 A3 A2
Выводим A одним способом B2 B2
пауза 2 секунды пауза
выводим A другим способом
i = 1 A3 A3
Выводим B одним способом B3 B2
пауза 2 секунды пауза
выводим B другим способом
A3 A3
пауза 2 секунды B3 B3Выбросьте весь этот мусор из кода. Один раз посчитайте всё, выведите. И никаких пауз между разными выводами на экран. Иначе вперемешку данные от разных замеров и разных датчиков.
Самым правильным алгоритмом будет что-то вроде такого:
Код: Выделить всё
uint16_t tempTimer;
...
interrupt_... {
if (tempTimer)
tempTimer--;
}
....
main() {
...
if (tempTimer == 0) {
tempTimer = 750; // запускаем таймер на 750 миллисекунд,
getDataFromSensors(); // вычитываем из датчиков последние данные в буфер
startNewMeasure(); // запускаем новый замер, данные будут готовы через 750мс, там их снова заберём и обновим буфер
}
// Выводим данные
}

