ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
619381 Топик полностью
Скрипач, пророк (14.09.2015 15:54 - 16:02, просмотров: 501) ответил SciFi на Спорить не стану, ибо не понимаю, что эта хреновина делает. Имена переменных, пардон за резкость, мне мало о чём говорят :-)
Специально для вас, еще более простой вариант (с картинками с комментариями)  #include "OS_base.h" #include "pt.h" // По единице на входе номер 'in' переключает состояние на выходе номер 'out' char Trigger(char in, char out){ static struct pt P[5]; struct pt *pt = P+in; PT_BEGIN(pt); PT_WAIT_UNTIL(pt, IOPort & _BV(in)); // _BV(in) - битовая маска бита номер 'in' if(IOPort & _BV(out)){ _Off(out); }else{ _On(out); }; PT_WAIT_WHILE(pt, IOPort & _BV(in)); PT_END(pt); }; int main(void){ while(1){ sleep_cpu(); wdt_reset(); net_process_data(); os_ai(); os_di(); Trigger(0, 8); Trigger(1, 9); Trigger(2,10); Trigger(3,11); Trigger(4,12); } }
... но не любой ценой.