[an error occurred while processing this directive]
Извини, после copy-paste не подправил - в нижней строчке не zl, а zh: sbci ZH,0. Константа XTAL просто для памятки, вместо zl и zh ассемблер подставит R30 и R31 соответственно, можешь сам подставить любые два регистра из R16..R31
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
=AVR= 16 ноября 2006 г. 00:19
В ответ на: Ответ: отправлено
<font color=gray>MicroKot</font> 16 ноября 2006 г. 00:10
|
|
|
|
.equ xtal = 1000 ; Частота XTAL в килогерцах, просто для памятки ldi zh,ms ; Вместо ms пиши число миллисекунд требуемой задержки, от 2 до 255
rcall delay_ms; Вызов подпрограммы задержки
; Здесь продолжай свой код
; ...
; ...
; ...
; ...
; Сама подпрограмма задержки
delay_ms:
subi zl,1 ; 1 такт. Вместо zl(R30) и zh(R31) можешь подставить любые два регистра из R16..R31
sbci zh,0 ; 1 такт
brne del_ms ; 2 такта, итого 4 микросекунды на цикл zl, т.е. 256*4~=1 миллисекунда на шаг zh
ret
Составить ответ
|||
Конференция
|||
Архив
Ответы
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание