Всё работает нормально, пока на машине не проедешь ~25км, т.е. переменная натикает ~125000, а дальше принимает отрицательное значение и далее возрастает уже из минуса. По видимому переполнение, но для unsigned long int диапазон значений от 0 до 4294967295, а она переполняется гораздо раньше, причём убегает в минус, хотя тип переменной - беззнаковое.
Может сталкивались с этой проблемой в codevisionAVR? подскажите как обойти плиз..

ЗЫ: Смотрел memory map, там переменная занимает 4 байта как и положено для unsigned long int.