Kavka писал(а):_dark, может переполнение или уход в "минус" происходит? А у вас в коде uint16.
если бы было так я был бы счаслив! ... (как мне мало нужно для счастья

)
наверное нужно пояснить
lenght >= cursegm всегда
в пределе 16.0*1024, явно влезет во float
и самое главное я контролирую на
каждый момент вычисления все параметры с помощью массива stTest16[]
каждый параметр, например:
Код: Выделить всё
worksegm = lenght - cursegm - 1;
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
stInt.Word = worksegm; //!!!!!!!!!!!!!!!!!!!!
for(uint8_t k=0;k<2;k++){ //!!!!!!!!!!!!!!!!!!!!
stTest16[k] = stInt.Byte[1-k]; //!!!!!!!!!!!!!!!!!!!!
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
на момент расчета, следующие операторы кладут каждую переменную в массив, и эта часть массива больше не меняется до следующего расчета,
т.е. данные которые я вижу, считывая stTest16[] синхронны и верны на момент расчета (расчет происходит редко раз в несколько секунд и управляется внешней командой, а ее можно всегда остановить)
...
пока выкрутился заменив произведение суммой, но чувство своей ущербности не исчезает
ARV писал(а):... подключите к проекту математическую библиотеку, т.е. используйте опцию -lm при компиляции.
.
ARV похоже это правильный пинок...