Ви не увійшли.
Спасибо.
Так это и был ответ. Открой библиотеку и посмотри как они делают те функции, что тебе нужно. Все эти возможности там есть. Посмотри и делай также.
Я спрашиваю конкренто о куске коде выше, который хочу залить в Атмегу8. Остальную память под другое выделяю. А с библиотекой RDA5807M уже порабодал на Уне. Это другой проэкт. Если есть ответ, плиз, ответьте!
А что взять готовую библиотеку, в которой всё это есть и либо пользовать, либо посмотреть как они управляют, религия не позволяет?
https://github.com/mathertel/Radio
Регулировка громкости. Куда и что тут вставлять?
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.
}
RDA5807M
...
Кто поможет освоить етот модуль? Интересует регулировка громкости и т д.всё что есть в даташите.
А что у вас не получается? Все?
Нарыл код в нете для FM радио на Ардуино на базе EM5807M. Залил это дело в Atmega8, все заработало, сделал простой выбор стаций.
А кто знает как управлять програмно громкостью, басами, стерео/моно и др. Используемая часть кода ниже.
#include <Wire.h> // I2C-Library
double f_ini=104.3; // Стартовая частота настройки приемника. (Изменяем на нужную).
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.
}
http://forklg.ru/viewtopic.php?f=98&t=1173
"Кто поможет освоить етот модуль?"
день добрый, вопрос непонятен (
если эта функция работает то у вас все есть для освоения
void setFrequency(double fmhz) // Функция загрузки частоты настройки в модуль EM5807M.
настройка на волну работает?
RDA5807M
I2C Scanner
Scanning...
I2C device found at address 0x10 !
I2C device found at address 0x11 !
I2C device found at address 0x60 !
done
// Programm: fm_radio_module_em5807m_rev100.ino
// Language: Arduinio C++
// Hardware: Arduino Nano 3.0 + EM5807M module with RDA5807M Chip.
// Version: 1.00
// Autor: www.5v.ru
// Link: www.5v.ru/start/em5807m-arduino-nano-30.htm
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#include <Wire.h> // I2C-Library
double f_ini=115; // Стартовая частота настройки приемника. (Изменяем на нужную).
void setup() // Инициализация.
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
Wire.begin(); // Инициализация двухпроводной шины I2C.
setFrequency(f_ini); // Вызываем фукнкцию загрузки частоты настройки в модуль EM5807M.
}
void loop() // Основной цикл программы
{
// Здесь можем написать нашу самую лучшую программу, которая будет работать так как нам нужно.
f_ini = 91.0;
setFrequency(f_ini);
delay(10000);
f_ini = 91.4;
setFrequency(f_ini);
delay(10000);
f_ini = 92.1;
setFrequency(f_ini);
delay(10000);
f_ini = 100.2;
setFrequency(f_ini);
delay(10000);
f_ini = 101.0;
setFrequency(f_ini);
delay(10000);
f_ini = 101.6;
setFrequency(f_ini);
delay(10000);
f_ini = 102.4;
setFrequency(f_ini);
delay(10000);
f_ini = 102.9;
setFrequency(f_ini);
delay(10000);
f_ini = 103.3;
setFrequency(f_ini);
delay(10000);
f_ini = 103.7;
setFrequency(f_ini);
delay(10000);
f_ini = 104.1;
setFrequency(f_ini);
delay(10000);
f_ini = 104.5;
setFrequency(f_ini);
delay(10000);
f_ini = 105.0;
setFrequency(f_ini);
delay(10000);
f_ini = 106.1;
setFrequency(f_ini);
delay(10000);
f_ini = 107.1;
setFrequency(f_ini);
delay(10000);
f_ini = 107.5;
setFrequency(f_ini);
delay(10000);
}
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.
lcd.clear();
lcd.print(f_ini);
lcd.print("MHz");
}
Кто поможет освоить етот модуль?Интересует регулировка громкости и т д.всё что есть в даташите.