-
11.05.2007, 13:24 #1
- Регистрация
- 09.04.2007
- Сообщений
- 5
- Поблагодарили
- 0
- Поблагодарил
- 0
AVR 1200
Добрый день, коллеги. Всех с наступившим праздником!
Вопрос такой. Работаю с контроллером AVR 1200.
Внешний генератор не подключал. Работаю, соответственно, только от внутреннего - 1 МГц.
Помогите достать ассемблерный код для формирования задержки в 1 сек при данной частоте генератора.
-
15.05.2007, 15:40 #2
- Регистрация
- 02.11.2004
- Адрес
- Волгоград, Россия
- Возраст
- 37
- Сообщений
- 236
- Поблагодарили
- 3
- Поблагодарил
- 0
Есть два варианта:
1)сделать цикл...
mov r0, x
_label1:
mov r1, 255
_label2:
dec r1
jnz _label2
dec r0
jnz _label1
Теперь нужно подсчитать значение х. Для этого нужно вычислить количество тактов во вложенном цикле. И выполнить вложенный цикл столько раз, чтобы задержка была 1 с.
2) Использовать таймер.Дмитрий
-
16.05.2007, 10:03 #3
- Регистрация
- 05.12.2005
- Адрес
- Волжский, Волгоградская обл.
- Возраст
- 70
- Сообщений
- 59
- Поблагодарили
- 1
- Поблагодарил
- 0
To Dimon50002004:
Извини, но это код кажись от 51-го семейства.
У АВРов немного другой код, задержка там будет выглядеть примерно так.
Подпрограмма:
Delay:
nop
dec r16
brne Delay
ret
---------------
При тактовой частоте 4.608 кГц - один цикл в подпрограмме - 0.868мкс
Вызов подпрограммы для задержки на 87мкс:
ldi r16,100
rcall Delay
Для 1мГц пересчитайте сами при условии что 1 такт на простую комаду и два такта на переход.
А вобще это все опИсано во всех даташитах на любую АВР.
По этому я и не стал сразу отвечать.
Ссылок на даташиты и дкументацию на АВР я предостаточно тут давал.
УспеховПавел :: ex: UA9COD
-
17.05.2007, 10:29 #4
- Регистрация
- 05.12.2005
- Адрес
- Волжский, Волгоградская обл.
- Возраст
- 70
- Сообщений
- 59
- Поблагодарили
- 1
- Поблагодарил
- 0
Вот кстати только что ссылку дали на хорошую книгу:
http://natahaus.ifolder.ru/1907153Павел :: ex: UA9COD
|
Социальные закладки