ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
610606 Топик полностью
Олдфаг (22.07.2015 23:04, просмотров: 1) ответил SciFi на Ну да. И делается это так: в шапке сишника пишем "#define ASSERT_CS() do { PORT &= ~(1 << 3); } while (0)". И не нужны все эти set_hi, set_lo.
Угу. А потом если поменять номер бита то менять магические цифры в нескольких местах: где ставите,где сбрасываете, где проверяете состояние для тоггливания... Вы все почему-то забываете, что у управления битами есть 3 уровня представления: собственно низкоуровневые универсальные макросы доступа define SET_BIT(p,b) p |=(1 < < n), затем символьный вид define RED_LED PORTA,3 где идёт назначчение и все меняется в одном месте, и абстрактный вид define RED_LED_ON SET_BIT(RED_LED). В cишнике используется только третий вид RED_LED_ON;, а первые два не выходят из аппаратнозависимых хедеров. У Вас при совершенно правильном подходе (макросы Волкова я тоже не признаю)пропущен второй уровень, а надо бы что-то типа define ASSERT_CS CLR_BIT(CS)