ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
5 июля
154938 Топик полностью
Vit (27.04.2009 01:10, просмотров: 308) ответил Evgeny_CD на Вау, какие люди нас посетили! Уважуха! Как топик стартер, я, похоже, мутно выразился и все свалил в кучу. Отсюда и непонятки. На самом деле есть некий глобальный баланс между "нативной" потребностью проги в памяти и накладных расходах ОСи на
Хм... там выше Александр абсолютно точно сказал, что POSIX это API, а не сама ОС. Я использую в рамках статических сопрограмм похожие на такие конструкции: void main(void){ char * request = NULL; clock_t ts; while(1){ if(request){ //echo serial_tx_post(request); while(!serial_tx_end()){ ts = clock(); blink_green(); while(clock_elapsed(ts) < PAUSE_GREEN); } request = NULL; } ts = clock(); blink_red(); while(clock_elapsed(ts) < PAUSE_RED){ if(request = serial_rx_decode()) break; } } } где serial_tx_post(char *) заправляет указатель на строку дрову передачи, serial_tx_end() рассказывает, ушла ли строка, clock() отдаёт значение длинного счетчика (например 32-бит системного таймера с тиком 1 ms), clock_elapsed(ts) возвращает сколько тиков таймера прошло от ts, ну а serial_rx_decode() нужно было бы назвать gets от POSIX ;) - она возвращает NULL пока ничего полезного ещё не принялось.