Проблема такая. делаю цифровой спидометр на меге16, по прерыванию инкременирую переменную km, которая объявлена так: unsigned long int km=0;
Всё работает нормально, пока на машине не проедешь ~25км, т.е. переменная натикает ~125000, а дальше принимает отрицательное значение и далее возрастает уже из минуса. По видимому переполнение, но для unsigned long int диапазон значений от 0 до 4294967295, а она переполняется гораздо раньше, причём убегает в минус, хотя тип переменной - беззнаковое.
Может сталкивались с этой проблемой в codevisionAVR? подскажите как обойти плиз..
ЗЫ: Смотрел memory map, там переменная занимает 4 байта как и положено для unsigned long int.