Там ещё непочатый край для учёбы, согласись Alex_ka)?
Согласен.Мы же самоучки. Без адекватной помощи как от Романа, никак. За. что ему отдельная благодарность, что потратил время на мой вопрос и на примере разъяснил.
Вопрос только в том, что а нужна ли эта экономия? И зачем? Заради чего? Понятно, раньше экономили из за ресурсов. А сейчас? По привычке? А то что страдает наглядность? Понятность исходного кода? Нет, давайте изображать из себя хакеров! Ну тогда да.
0b00001111; - это магические цифры. Если писать по нормальному, то их быть не должно. Каждый разряд должен быть описан. Это нужно объяснять? Удивительно, что тебя этому нужно учить. В принципе, ты можешь писать как угодно, как тебе нравится. Только это будет выглядеть как неграмотный текст с ошибками. Ну и мнение о тебе соответствующее.
Если ты в даташите кроме картинок ничего больше не видишь, то на разработчика пенять не нужно. До примера он подробно обо всём написал и всё пояснил: Спойлер И научись свои партянки под спойлер прятать…
Мужики, в чем срач? Ну если вы действительно профи, ну так приведите пример, а не голословно показывайте то, что ваш уровень выше. Будет полезно и таким как я, которые сами познают и некому научить.
для тех кто в танке)) если разработчикам МК используют битовые операции... значит и нам можно))
Alex_ka писал(а):
там кнопок нет, там управление на порт "В" подаётся с микросхемы DTMF НТ9170. т. е с телефонного аппарата, в тональном наборе приходит комбинация цифр и меняет состояние на порту "В".
если разработчикам МК используют битовые операции... значит и нам можно))
Я же говорил не о битовых операциях, а о магических цифрах, как твои 0b00001111, которые непойми что значат. И неважно в каком они виде - двоичном, десятичном... Как раз у разработчиков всё красиво. С них и старайся брать пример.
ЭТО вообще пишется не так. Сначала описываешь подключение (схему, физику). Через define, либо через const переменные или ещё как. И это всё находится в одном месте, обычно в .h файле.
Теперь тебе пофигу что и как подключено. Ты схему в упор не видишь! Ты работаешь с логикой.
Код:
if (!DTMF0 && !DTMF1 && !DTMF2 && !DTMF3) { c = 0; d = 0; break; }
Теперь, ты можешь как хочешь менять схему, логика (текст программы) останется неизменной!
Можно и по другому, вдруг ты хочешь скорости или компактности. Создаёшь макро или инлайн функцию:
Код:
#define get_dtmf() (PORTB & 0b1111) //опять же, все в одном месте, лучше в header-е
Тогда если ты меняешь подключение, ты только правишь макро-функцию get_dtmf(). В программе же ничего меняться не будет и логика останется прежней:
Код:
if (!get_dtmf()) { c = 0; d = 0; break; }
И тебе не придётся лазить по всей программе, выискивая порты и биты к которому подключен этот DTMF и гадать, а что же это значит 0b00001111? Что именно содержится в этих битах?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения