WTF, господа программисты?
Jul. 3rd, 2012 10:01 pmИмеется контроллер, в регистр (8 бит) надо записать правильный коэффициент деления чтобы получить правильную частоту.
Я так и пишу
UBRR1L = (16000000/(16 * 13980)) - 1;
и час пытаюсь понять почему все сбоит. Проверяю регистр. Там 74. А калькулятор говорит надо 70. Меняю код на
UBRR1L = 70;
и все становится хорошо. Но как же так, дорогая редакция? Почему GCC не посчитал точно а что то сильно "округлил"?
Где у Маркса или K&R сказано что не надо считать точно? Ведь константа считается при компиляции?
Я так и пишу
UBRR1L = (16000000/(16 * 13980)) - 1;
и час пытаюсь понять почему все сбоит. Проверяю регистр. Там 74. А калькулятор говорит надо 70. Меняю код на
UBRR1L = 70;
и все становится хорошо. Но как же так, дорогая редакция? Почему GCC не посчитал точно а что то сильно "округлил"?
Где у Маркса или K&R сказано что не надо считать точно? Ведь константа считается при компиляции?