Page 259 - 4503
P. 259
4 N = 996
N = 249
Створена нами програма затримки значною мірою
обмежена тим, що робочий регістр, як і усі інші регістри
мікроконтролерів РІС є 8–бітними, тобто їх максимальне
значення дорівнює b’11111111’, що в десятковому форматі
форматі d’255’. Насправді ж найбільшу затримку сформує
значення N = 0. Це станеться тому, що вміст W
декрементуватиметься до перевірки на нуль за такої схеми: h’
00 FF h’FE’ … h’01’ h’00’. Що призведе до N =
256, а отже затримка триватиме 4 + 4 256 = 1028 мкс за
частоти резонатора 4 МГц.
8.5 Підпрограма (процедура) формування затримки
тривалістю 2 мілісекунди.
Затримку можна дещо збільшити, додаючи до тіла циклу
кілька команд nop. Кожна з цих команд додає по одному
машинному циклу до спільного часу затримки, не впливаючи
жодним чином на ознаки регістра стану. Тож впишемо у код
програми, наприклад чотири команди nop. Це додасть до
формули ще 4 N і загальний вигляд розрахункового рівняння
матиме такий вигляд: 4 + 8 N. Якщо N дорівнює 249, а отже,
за тривалості машинного циклу 1 мкс, затримка становитиме
1996 мкс, тобто приблизно 2 мс. Тож для підвищення
точності, можна додати ще чотири команди nop, розмістивши
їх до початку циклу, і тим самим досягти затримки рівно в
2000 мікросекунд.
Програма 8.2. Підпрограма формування 2- мс
затримки
-3
; ФУНКЦІЯ : формування затримки тривалістю 2 10 с (2 мс)
; частота 4 МГц
259