[an error occurred while processing this directive]
Извини, после copy-paste не подправил - в нижней строчке не zl, а zh: sbci ZH,0. Константа XTAL просто для памятки, вместо zl и zh ассемблер подставит R30 и R31 соответственно, можешь сам подставить любые два регистра из R16..R31
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено =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



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание