Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн окт 06, 2025 22:16:43

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 418,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 16:29:56 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 179
Откуда: Гомель
Рейтинг сообщения: 0
Спасибо за подсказку. Учту.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 18:24:16 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 1
Там ещё непочатый край для учёбы, согласись Alex_ka)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 20:22:15 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
да тут ещё много надо подсказок))

например зачем писать отдельно две переменных...
Код:
delay_ms(100);
TX_c_eep();
delay_ms(100);
TX_d_eep();
delay_ms(100);

если можно писать за один раз...
:dont_know:

а это...
Код:
unsigned char in_PINB0, in_PINB1, in_PINB2, in_PINB3;

in_PINB0 = PINB.0;
in_PINB1 = PINB.1;
in_PINB2 = PINB.2;
in_PINB3 = PINB.3;

if(!in_PINB0 && !in_PINB1 && !in_PINB2 && !in_PINB3) {c=0; d=0;;break;}; // от DTMF 1

вообще можно записать в одну переменную...
:dont_know:
и т.д.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 21:32:26 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 179
Откуда: Гомель
Рейтинг сообщения: 0
Там ещё непочатый край для учёбы, согласись Alex_ka)?
Согласен.Мы же самоучки. Без адекватной помощи как от Романа, никак. За. что ему отдельная благодарность, что потратил время на мой вопрос и на примере разъяснил.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 21:39:14 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2925
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18846
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
roman.com писал(а):
вообще можно записать в одну переменную...
совершенно верно. прочитал весь порт в переменную, а потом проверяй биты. и ничего не будет пропущено.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт сен 30, 2025 22:35:06 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Вопрос только в том, что а нужна ли эта экономия? И зачем? Заради чего?
Понятно, раньше экономили из за ресурсов. А сейчас? По привычке?
А то что страдает наглядность? Понятность исходного кода? Нет, давайте изображать из себя хакеров! Ну тогда да.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 00:56:51 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
Не страдает наглядность. Даже наоборот.
4 кнопки выглядят так:
c = 0b00001111;
:idea: :idea: :idea: :idea:
И что пострадало ?))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 10:22:45 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
0b00001111; - это магические цифры. Если писать по нормальному, то их быть не должно. Каждый разряд должен быть описан. Это нужно объяснять? Удивительно, что тебя этому нужно учить. В принципе, ты можешь писать как угодно, как тебе нравится. Только это будет выглядеть как неграмотный текст с ошибками. Ну и мнение о тебе соответствующее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 10:33:11 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 3
это не магические цифры а биты в байте.))
Если писать по нормальному, то открываем даташит с смотрим как должно быть.
См. выше.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 10:56:18 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 41
Зарегистрирован: Вт фев 09, 2010 17:52:26
Сообщений: 471
Рейтинг сообщения: 0
roman.com писал(а):
вообще можно записать в одну переменную...

Так написано, чтобы было понятно тому, кому это предназначалось.
И такой код позволит легко переназначить часть входов на другой порт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 10:59:21 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: -2
0b00001111; - это магические цифры. Если писать по нормальному, то их быть не должно.

Открываем даташит от разработчиков МК... и что мы видим ?

Изображение

Что такое EEMPE... ? Что такое EEPE... ?
и т.д.

Это не я написал. Это написали разработчики МК.
:tea:

Напиши / позвони разработчикам МК и скажи что они все дураки ! )) И так писать нельзя ! ))

Вот их адрес (из того же даташита).

Изображение

:tea:


Вложения:
Screenshot_1.jpg [54.69 KiB]
Скачиваний: 177
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 14:10:30 
Говорящий с текстолитом
Аватар пользователя

Карма: 16
Рейтинг сообщений: 233
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1522
Откуда: Тюмень
Рейтинг сообщения: 2
Что такое EEMPE... ? Что такое EEPE... ?
и т.д.

Это не я написал. Это написали разработчики МК.
:tea:

Если ты в даташите кроме картинок ничего больше не видишь, то на разработчика пенять не нужно. До примера он подробно обо всём написал и всё пояснил:
СпойлерИзображение

И научись свои партянки под спойлер прятать… :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 14:52:43 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
прежде чем писать ответ... хотя бы сначала прочитал вопрос ))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 18:49:03 
Нашел транзистор. Понюхал.

Зарегистрирован: Ср сен 04, 2019 17:59:23
Сообщений: 179
Откуда: Гомель
Рейтинг сообщения: 0
Мужики, в чем срач? Ну если вы действительно профи, ну так приведите пример, а не голословно показывайте то, что ваш уровень выше. Будет полезно и таким как я, которые сами познают и некому научить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср окт 01, 2025 21:54:37 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
пример ? так никто ничего не спрашивает))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт окт 02, 2025 10:21:38 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
Это не я написал. Это написали разработчики МК.
:tea:

Напиши / позвони разработчикам МК и скажи что они все дураки ! )) И так писать нельзя ! ))

Что тебя смущает? Что не так у разработчиков?
И чётче выражай свои мысли.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 09:40:08 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
для тех кто в танке))
если разработчикам МК используют битовые операции... значит и нам можно))
:tea:
Alex_ka писал(а):
там кнопок нет, там управление на порт "В" подаётся с микросхемы DTMF НТ9170. т. е с телефонного аппарата, в тональном наборе приходит комбинация цифр и меняет состояние на порту "В".

осталось увидеть полную схему и программу...
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 10:03:26 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 0
если разработчикам МК используют битовые операции... значит и нам можно))

Я же говорил не о битовых операциях, а о магических цифрах, как твои 0b00001111, которые непойми что значат. И неважно в каком они виде - двоичном, десятичном...
Как раз у разработчиков всё красиво. С них и старайся брать пример.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 11:12:35 
Друг Кота

Карма: -2
Рейтинг сообщений: 60
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8596
Откуда: .ru
Рейтинг сообщения: 0
выше прозвучало предложение...
вместо этого...
Код:
if(!in_PINB0 && !in_PINB1 && !in_PINB2 && !in_PINB3) {c=0; d=0; break;}; // от DTMF 1


можно просто записать порт "B" в переменную "с"
вот так:
Код:
с = PINB;

и дальше работаем с битами...

0b00001111;

любому программисту эта запись понятна.
:tea:

а кому не понятно... идет учиться дальше))

на этом всё.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт окт 03, 2025 12:00:05 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 134
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1294
Рейтинг сообщения: 3
вместо этого...

ЭТО вообще пишется не так. Сначала описываешь подключение (схему, физику). Через define, либо
через const переменные или ещё как. И это всё находится в одном месте, обычно в .h файле.
Код:
#define DTMF0       PINB.0              //вот твоё подключение, физика
#define DTMF1       PINB.1
#define DTMF2       PINB.2
#define DTMF3       PINB.3

Теперь тебе пофигу что и как подключено. Ты схему в упор не видишь! Ты работаешь с логикой.
Код:
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? Что именно содержится в этих битах?

Устал я от тебя, Рома.)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 418,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y