МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

При разработке данного приложения я попутно нашел один интересный способ реализации 16-битовой задержки в AVR:

Здесь Count и Counthi - регистры общего назначения с адресами в диапазоне от $10 до $1F. При помощи этого фрагмента кода можно обеспечить очень широкий диапазон задержек значительно проще, чем это реализуется в микроконтроллерах PIC. Каждый цикл выполняется в течение 5 тактов независимо от того, производится инкремент старшего байта счетчика циклов, или не производится. Чтобы получить необходимую задержку, можно воспользоваться формулой:

Задержка = (Начальное значение счетчика*5)/Тактовая частота

Чтобы определить требуемое начальное значение счетчика при заданной задержке, можно переписать формулу следующим образом:

Начальное значение = (Задержка * Тактовая частота)/5

При реализации задержки по этой формуле следует учесть, какие значения должны быть загружены в регистры Count и Counthi. В регистр Count заносятся младшие восемь бит начального значения, а в регистр Countlii — старшие 8 бит плюс I, для того, чтобы выполнялось требуемое число циклов. Это отражено в комментарии к приведенному выше фрагменту программного кода.

Go to Top