ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Воскресенье
4 декабря
1168499 Топик полностью
Argon (27.01.2022 13:52, просмотров: 135) ответил SciFi на Как вариант, разбить один макрос на несколько:
Можно, но будет нечитабельно... В общем, отказался от отдельных макросов для битов, а для байтов - свои проктопотоки. 

PT_THREAD(OW_write_byte(struct pt *pt, uint8_t databyte)) {

static uint8_t i;

PT_BEGIN(pt);

for(i = 1; i <= 0x80; i <<= 1) {

if(databyte & i) {

OW_bit_0();

OW_DELAY(10);

OW_bit_1();

OW_DELAY(60);

OW_bit_1();

OW_DELAY(10);

}

else {

OW_bit_0();

OW_DELAY(10);

OW_bit_0();

OW_DELAY(60);

OW_bit_1();

OW_DELAY(10);

}

}

PT_EXIT(pt);

PT_END(pt);

}