Ничего там "читабельнее" нет...Goldsmith писал(а):1. Вместо (условие == 0) с таким же успехом можно писать (!условие). Второй вариант читабельнее, поскольку конфузливо скрывает факт, что C так и не обзавелся полноценным булевским типом.Код: Выделить всё
while ((UCSRA & _BV(UDRE)) == 0); //Пауза, цикл работает пока регистр данных не опустошён
Так... персональная привычка... не более...
Восклицательный знак гораздо проще не заметить...
Грех "воспользоваться готовеньким"... ))))))))))))))2. Вместе с макросом _BV в библиотеке определены также еще несколько полезных макросов для работы с битами. Один из них:ожидает в пустом цикле, пока в регистре ввода-вывода sfr установится бит bit. Грех не воспользоваться готовеньким, тем более что библиотечные элементы, как правило, хорошо оптимизированы и протестированы.Код: Выделить всё
#define loop_until_bit_is_set( sfr, bit ) do { } while (bit_is_clear(sfr, bit))
При малейшем сбое или ошибке можно долго ломать голову... почему зависло или пересбрасывается... )))))))))
Да ещё и надеяться на то... "что библиотечные элементы, как правило, хорошо оптимизированы и протестированы"... )))))
Да и сам макрос _BV галимый ацтой... нигде в природе больше не встречается... )))))))


