Радиомодуль rda5807m
- Войдите на сайт для отправки комментариев
Вс, 21/08/2016 - 12:07
Добрый день
Нашел код в интернете, код рабочий, но мне не до конца понятен, помогите, пожалуйста, разобраться.
#include <Wire.h> // I2C-Library double f_ini=106.2; // Стартовая частота настройки приемника. (Изменяем на нужную). void setup() // Инициализация. { Wire.begin(); // Инициализация двухпроводной шины I2C. setFrequency(f_ini); // Вызываем фукнкцию загрузки частоты настройки в модуль EM5807M. } void loop() // Основной цикл программы { // Здесь можем написать нашу самую лучшую программу, которая будет работать так как нам нужно. } void setFrequency(double fmhz) // Функция загрузки частоты настройки в модуль EM5807M. { int frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768; char frequencyH = frequencyB >> 8; // Старший байт. char frequencyL = frequencyB & 0XFF; // Накладываем маску 0xFF на младший байт. Wire.beginTransmission(0x60); // Адрес чипа RDA5807M Wire.write(frequencyH); // Старший байт. Wire.write(frequencyL); // Младший байт. Wire.write(0xB8); // 1011 1000 =Стерео Wire.write(0x10); // 0001 0000 Wire.write((byte)0x00); // Wire.endTransmission(); // формируем I2C-Stop. }
Вобщем-то вопросы:
Функция setFrequency использует значение f_ini возвращает fmhz, но откуда берется значение fmhz? оно нигде не задается в явном виде? И как учитывается значение f_ini, оно тоже явно нигде не используется в формулах.
В строках 24,25 задается задается режим работы стерео или моно, а что задаетсяв 26 строке?
В 18 строке идет пересчет частоты в целое число, для дальнешей побитовой загрузки, как именно это происходит? Я вижу, что там используется частота кварца,а что означают остальные множители?
Функция setFrequency использует значение f_ini возвращает fmhz,
Функция setFrequency ничего не возвращает - она void.
откуда берется значение fmhz? оно нигде не задается в явном виде?
Это формальный параметр функции, он задан в явном виде в списке параметров в стр. 16, смотрите внимательнее.
И как учитывается значение f_ini, оно тоже явно нигде не используется в формулах.
Опять же смотрите внимательнее, оно явно используется в строке 8 - передаётся функции в качестве фактического параметра.
В строках 24,25 задается задается режим работы стерео или моно, а что задаетсяв 26 строке?
На самом деле в строках 24-25 задаётся много всего, там до чёрта параметров. В 26 строке задается следующий регистр. Подробно про каждый бит всех регистров см. стр. 8-12 даташита.
В 18 строке идет пересчет частоты в целое число, для дальнешей побитовой загрузки, как именно это происходит? Я вижу, что там используется частота кварца,а что означают остальные множители?
Процедура расчёта частоты описана в даташите на стр. 9
Огромное спасибо, буду разбираться дальше.