[an error occurred while processing this directive]
Прошу прощения, не дочитал до конца про ограничения по времени. Внутри решение...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Mk-51 12 октября 2005 г. 12:12
В ответ на: Добавка: предварительно в C надо загнать состояние крайнего бита прямыми командами C:=0; или C:=1; отправлено <font color=gray>Mk-51</font> 12 октября 2005 г. 11:52

В главной программе на C определяем переменную RR_DATA в сегменте data. Далее пишем ассемблерный файл name.a51 со следующим текстом:

NAME RR_MODUL

?PR?readwrite?RR_MODUL SEGMENT CODE

extrn data (RR_DATA)

public RR_LABEL


RSEG ?PR?readwrite?RR_MODUL

RR_LABEL: RR RR_DATA
RET

END


В программе на C определяем внешнюю функцию

extern void RR_MODUL(void);

и далее по программе вызовом RR_MODUL(); каждый раз сдвигаем переменную RR_DATA на один разряд циклически вправо. Файл name.a51 можно просто включить в проект. Если необходимо, то можно создать не процедуру, функцию с передачей параметров. В этом случае она будет подключаться с главной программе так:

extern unsigned char RR_MODUL(unsigned char RR_DATA, CICL);

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

Ответы


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

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

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru