Цитата(Lagman @ Nov 2 2005, 00:21)
В ucos-ii для pic18fxxx (18f452) тики идут каждые 10 мс при частоте кварца в 4МГц таймер программируется на счетный режим числом 55456.
Подскажите пожалуйста откуда получается магическое чило TMR0H = 0xD8 TMR0L = 0xA0 ( 55456 или 65535 - 55456 = 10079) для кварца в 4 МГц, я понимаю что это прерывание будет каждые 10мс, но ведь получается что переполнение происходит при переполнении таймера (FFFF в 0000) я получаю число 10000 т.е. 400000(Мгц)/4(по даташиту Fosc/4)*0,01 (10мс)= 10000 (65535-10000=55535), откуда берутся дополнительные +79 (10079-10000). И как мне расчитать это число для кварца в 8МГц, и 8МГц+PLL т.е. 32МГц?
P.S. Смотрю на исходник PICOS18 (www.picos18) и вижу что простым увеличением на 2 или на 8 ничего не получится.
Для частоты 8 MHz, число загрузки определяется следующим образом:
10000us/(1/(8000000MHz/4)) = 10000us/0,5us = 20000 (0x4E20); Следовательно, число загрузки таймера 0xFFFF-0x4E20 = 0xB1DF (TMR0H=0xB1,TMR0L=0xDF); Для частоты 32 Mz необходимо подключить на вход таймера предделитель, например с коэффициентом деления 2, а расчёт как указано выше. Успехов !