Радиомодуль 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
Огромное спасибо, буду разбираться дальше.