ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
1168445 Топик полностью
Argon (27.01.2022 11:16, просмотров: 278) ответил SciFi на А лучше не заниматься такой ерундой и просто делать два раза PT_YIELD() в отдельных строках. Не верю, что все эти пляски с препроцессором приближают к просветлению.
Я бы рад, но тогда придется делать выделенные протопотоки для чтения/записи 1 (одного) бита 1wire. По-моему, это где-то на грани с маразмом. До сих пор пытался следующим образом: 

#define OW_READ_BIT(bitval) do{ \

OW_bit_0(); \

OW_DELAY(5); \

OW_bit_1(); \

OW_DELAY(5); \

( bitval ) = OW_bit() == 0 ? 0 : 1; \

OW_DELAY(60); }while(false)


Макрос PT_YIELD находится внутри макроса OW_DELAY.

Ессно так не получится из-за однострочности макросов, придется извратиться как-то иначе. Но на отдельный протопоток пока не согласен.