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
   254   255   256   257   258   259   260   261   262   263   264