Цитата(GDI @ May 28 2007, 11:18)

Если хватит диапазона то сделать так:
Код
g = Speed_p * 166;
, а при индикации тупо ставить запятую где надо. Если диапазона
int не хватит , то объявить переменную как
long int g. Т.е. если у вас и входная и выходная переменные целочисленные, то не к чему делать вычисления с плавающей точкой - все равно потеряете точность и как следствие получите дополнительную погрешность при преобразовании типов.
Я вывожу на индикатор целое число. И потом даже при увеличении погрешности если переменная Speed_p не изменяется, то и после умножения на константу любого типа выражение не должно прыгать.... По моему так..
Вообще у меня подозрения что как раз в момент когда выполняется
Код
Speed_p=TCNT0;
... и тут приходит импульс на вход тактирования таймера
TCNT0=0;
а я его обнуляю.... возможно здесья теряю единицу.... Может это можно какнибудь отловить....
Сообщение отредактировал DAndy_boy - May 28 2007, 07:27