Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

А что? Тут же люди добрые рыбёшку выкладывали. Сделайте для себя.

Отправлено Quasy 22 июля 2008 г. 10:23
В ответ на: Ну не заводи народ с утра. Как можно параметрировать задержку с точностью до цикла, сам подумай. отправлено Vladimir Ljaschko 22 июля 2008 г. 10:14


// Вот у меня так получилось.
/////////////////////////////////////////////
// Си-ФАЙЛ
/////////////////////////////////////////////
// Задержка на 10000 тактов ( аргумент х=10000).
// Для volatile x при вызове из Си надо из х вычитать 6,
// позтому минимальный аргумент равен 26 (т.к. для самой
// asm-функции минимальный аргумент = 16 )
x = PINA + 10000;
Delay_Int_Cycles( x - 6 ); // volatile аргумент 26...65535
//-------------------------------------
// Задержка на 10000 тактов ( аргумент y=10000).
// Для non-volatile x при вызове из Си надо из х вычитать 3,
// позтому минимальный аргумент равен 23 (т.к. для самой
// asm-функции минимальный аргумент = 16 )
y = PINB + 10000;
Delay_Int_Cycles( y - 3 ); // non-volatile аргумент 23...65535
//========================================
/////////////////////////////////////////////
// ASM-ФАЙЛ
/////////////////////////////////////////////
// Задержка N циклов, задаваемая программистом
// в регистрах R16,R17. Диапазон 16...65535
// Задержка CALL не учитывается!!!
PUBLIC Delay_Int_Cycles
/////////////////////////////////////////////
RSEG CODE
/////////////////////////////////////////////
Delay_Int_Cycles:
subi R16,16 ; 1
sbci R17,0 ; 1
lsr R17 ; 1
ror R16 ; 1
brcs Dl_000 ; 1(2)
Dl_000:
lsr R17 ; 1
ror R16 ; 1
brcs Dl_001 ; 1(2)
Dl_001:
brcs Dl_002 ; 1(2)
Dl_002:
subi R16,1 ; 1
sbci R17,0 ; 1
brne Dl_002 ; 1(2)
ret ; 4
/////////////////////////


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

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

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru