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

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

Если тебе надо задефайнить процедуру, тоесть сделать макрос, то делается это так:

Отправлено Trashy 20 августа 2009, г. 16:35
В ответ на: всёже остановлюсь на функции , а то через include файлов выйдет как конь наё.... , просто думал есть аналог макроса в асме :))) Спасиб!!! отправлено пользователем Aleksey75 20 августа 2009, г. 16:30


#define Procedure(port_in, in_ ,out_,TimeOut_) \
if ((((port_in & in_) == 0) | (In_Progress == out_) | (Turn_On_requirement & out_)))\
{\
if (In_Progress^out_)\
{\
PORTA = PORTA&(~(out_ ));\
}\
if ((TimeOut_ == 0) & ((Error & out_) != out_) )\
{\
if ( ((In_Progress == 0) & (Error == 0)) )\
{\
PORTA = PORTA|(out_);\
Turn_On_requirement = Turn_On_requirement & (~(out_ ));\
In_Progress = out_;\
Power_UP_Counter = PowerUp_Value;\
}\
else\
{\
if ( ((In_Progress == out_) & (Power_UP_Counter==0)) )\
{\
In_Progress = 0;\
if ( port_in & in_ )\
{\
ClrBit(Warning,out_);\
}\
else\
{\
PORTA = PORTA&(~(out_ ));\
if (Warning & out_)\
{\
SetBit(Error, out_);\
Led_Error;\
}\
else\
{\
SetBit(Warning, out_);\
TimeOut_ = TimeOut_Value; \
Turn_On_requirement = Turn_On_requirement | out_;\
}\
}\
}\
}\
}\
}


Procedure(PINC, In_S, Run_S, TimeOut_Run_S)
Procedure(PINC, In_A, Run_A, TimeOut_Run_A)
Procedure(PINC, In_SL, Run_SL, TimeOut_Run_SL)



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

Ответы


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

Сообщение:

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

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

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

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