Тема радиоприёмника на RDA5807 вроде бы и обсосана в соседней ветке форума, однако там народ в основном пользует регистры напрямую. Посему задам вопрос тут, поскольку чтот не получается... ...а именно не получается с функцией настройки приёмника radio.setBandFrequency(FIX_BAND, newFreq); Если newFreq опредляется дефайном, то всё отлично работает. Если newFreq опредляется как переменная (int или, как требуется, uint16_t), то всё стопорится и далее код не исполняется, хотя компилятор не ругается (версия 1.6.13)...
Есть одно смущение, когда я определяю величину переменной. У меня используется 4-х разрядный семисегментник. Поэтому индикация частоты на нём высвечивается от 875 до 1080 (мне этого достаточно). Также это число (переменная number) запоминается в еепром, для последующего включения на этой частоте. Чтобы определить цифру, которую надо отправить в RDAшку, я умножаю его на 10, чтобы получилось от 8750 до 10800. Получается так:
Прокрутил компиляцию вышеприложенного проекта от rw6hrm на ардуино IDE 1.8.9 для платформы arduino nano atmega328p (old bootloader) Версия платформы 1.8.3... Никаких замечаний... Даже вармингов нету (хотя у меня установлено для сообщений компилятора опция ВСЕ)...
Код:
Скетч использует 10042 байт (32%) памяти устройства. Всего доступно 30720 байт. Глобальные переменные используют 1014 байт (49%) динамической памяти, оставляя 1034 байт для локальных переменных. Максимум: 2048 байт.
Правда у меня установлен вот этот вариант библиотек:
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Спасибо за ответы. По порядку - использую 1.6.13 поскольку это максимум, что запускается на ВинХР . Ну и нашёл свой косяк - не активировалась библиотека wire.h, которая, вроде как бы, прилеплена внутри Radio. Активировать удалось простым обращением проверки подключения платы с RDAшкой, для этого внутри сетапа добавил строки
if (!radio.initWire(Wire)) { delay(1000); } ну и потом все обращения к чипу далее...
И, с*ка, всё пошло. А я, старый, забыл про это, разумеется всё висло, поскольку всё тупо кидалось в /dev/null... ...однако, почему срабатывал вариант с дефайном - мне неведомо... Так что посыпаю голову пеплом, что занял время у уважаемых форумчан...
Черновик схемы (другого нет) и фото внешности и кишков прилагаю, мож кому интересно. Осталось добить скетч на работу с пару сотней ячеек памяти для преднастроенных станций (много, ибо по работе нужно).
Вложения:
Комментарий к файлу: окончательный проект. sketch_my_rx.zip [168.96 KiB]
Скачиваний: 57
Комментарий к файлу: внешность rNyuhcjb7QU.jpg [75.03 KiB]
Скачиваний: 165
Комментарий к файлу: внутренность hJRzlI0CRH0.jpg [71.55 KiB]
Скачиваний: 167
Под виндовс ХР х32 идет Портабле вариант ардуиноIDE 1.8.9. Единственно - ни обновлять платформы ни обновлять библиотеки из под ХР в ней НЕЛЬЗЯ. Сразу должен быть выключен флажек "файл -> настройки -> проверять обновления при запуске" (устанавливаем и первый раз запускаем ТОЛЬКО ПРИ ОТКЛЮЧЕННОМ ИНТЕРНЕТЕ!!!). Далее НЕЛЬЗЯ будет запускать менеджер платформ и менеджер библиотек - в остальном ограничений нет. А для обновления и подгрузки новых платформ использовать портабле копию на флешке, которая запускается на ПК с виндовс 7/10 и затем копируется в каталоги на ПК с ХР. Штука довольно нудная, но отлично работает.
Радиовещанием работа называется. Ну всю пару сотен это так, шоб було , а вообще у меня под контролем только своих станций в двадцати пунктах региона порядка тридцати (да, в паре мест частоты совпадают). А ещё ж и конкурентов послушивать надо xD
Дабы не плодить новую тему спрошу тут оффтопом, а то мало ли, - как я понимаю, вытащить из RDAшки аудиоподнесущие SCA1/SCA2 (76/92 кГц) физиологически невозможно?
Как бы это немножечко не то, kbps тут вообще не при делах... SCA - это ЧМ-модулированные аудиоподнесущие внутри излучаемого спектра УКВ-станций. RDS - это тоже на поднесущей, 57 кГц, но DSB-модулированное. По сути говоря, аудиовещание на поднесущих - это почти то же самое, что и проводная трёхпрограммка...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения