[an error occurred while processing this directive]
Ответ: я делаю так...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено DeadMoroz 09 декабря 2005 г. 10:24
В ответ на: Не работают ассемблерные вставки в С (среда разработки Keil)!!! отправлено Andron 08 декабря 2005 г. 16:13

Пример кода
unsigned char DSReset(void)
// init for DS1990A device
// return code: 0 - success, 1 - fail
{
#pragma asm
// master TX "reset pulse 0" (480 < ... us)
L1:
clr DAL
// 500 us delay
mov B, #62
DEL500us:
mov RetCode, #200 // 8 us
djnz RetCode, $
djnz B, DEL500us
// clr EA
setb DAL

// sample DAL line after 16us (must be "1")
// 16 us delay
mov B, #2
DEL16us:
mov RetCode, #200 // 8 us
djnz RetCode, $
djnz B, DEL16us
mov C, DAL
jnc FAIL

// sample DAL line after 150us (master RX "presence pulse")
// 150 us delay
mov B, #18
DEL150us:
mov RetCode, #200 // 8 us
djnz RetCode, $
djnz B, DEL150us
mov C, DAL
jc FAIL

// sample DAL line after 100us (must be "1")
setb EA
// 100 us delay
mov B, #12
DEL100us:
mov RetCode, #200 // 8 us
djnz RetCode, $
djnz B, DEL100us
mov C, DAL
jc OK

FAIL: mov RetCode, #1
jmp RSTEXIT
OK: mov RetCode, #0
RSTEXIT:
#pragma endasm
EA=1;
return(RetCode);
}
В дереве проекта выбираете файл с вставкой, правой кнопкой выбираете свойства файла, ставите галки на всех пунктах, главное чтобы было отмечено Assemble SRC File и Generate Asm Src File

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru