Пн мар 09, 2015 19:55:24
WiseLord писал(а):Код нечитабелен, сплошные "магические числа".
Пн мар 09, 2015 20:20:01
pavel1979 писал(а):вот можно ли както обратиться именно к какомуто регистру ?например-вкл/выкл приемника,регулировка громкости....надо рыть...
Пн мар 09, 2015 21:00:54
WiseLord писал(а): (P.S. Нет, нашёл Ваш пример на бейсике чуть раньше кода автора. Но там тоже "магические числа" в ходу ).
Пн мар 09, 2015 21:25:42
Пн мар 09, 2015 21:29:08
Пн мар 09, 2015 22:25:36
pavel1979 писал(а):СПЕЦИАЛЬНО ДЛЯ WiseLord КОТОРЫЙ НИХРЕНА НЕ ПОНЯЛ ИСХОДНИК
Это директивы препроцессора C.pavel1979 писал(а):я у вас вообще не понимаю-какието define,include
В этом-то и проблема, что код заставляет лезть в даташит, чтобы понять эти магические числа с потолка.pavel1979 писал(а):
- Код:
I2cwbyte &B00100000 'ЗАПИСЬ В РДА-адрес RDA5807,читай даташит
I2cwbyte &B11010010 '02H байт-читай даташит
I2cwbyte &B00000101 '02L байт-читай даташит,его же не просто так писали
Config RDA5807_I2C_ADDR = &B00100000
'02H
Config RDA5807_DHIZ = &B10000000 'В языке C это было бы 0b10000000, или, лучше, (1<<7) - единица, сдвинутая на 7
Config RDA5807_DMUTE = &B01000000 ' Аналогично - (1<<6) - шестой бит 02H
Config RDA5807_BASS = &B00010000' Аналогично - (1<<4)
Config RDA5807_SEEKUP = &B00000010
'02L
Config RDA5807_NEW_METHOD = &B00000100
Config RDA5807_ENABLE = &B00000001
'Аналогично описать и другие регистры, а потом...
I2cwbyte RDA5807_I2C_ADDR 'ЗАПИСЬ В РДА-адрес RDA5807, даташит читать не нужно - и так всё понятно
I2cwbyte (RDA5807_DHIZ And RDA5807_DMUTE And RDA5807_BASS And RDA5807_SEEKUP) '02H байт - и без даташита понятно
I2cwbyte (RDA5807_NEW_METHOD And RDA5807_ENABLE) '02L - и тут, как ни странно, всё понятно. И без даташита
Вт мар 10, 2015 04:59:25
Ср мар 11, 2015 01:33:14
Ср мар 11, 2015 06:40:34
Пт мар 13, 2015 00:47:36
SergSV писал(а):в RDA5807M в режиме ТЕА5767 работать не может. В режиме совместимости работает RDA5807FP.
Схема и печатка в файле нарисованы в DipTrace . Делал себе на 5 каналов. Все резисторы 10 кОм , полевики BSS138 но можно другие использовать.
чуть выше я выкладывал исходник для RDA5807M.
Пт мар 13, 2015 06:04:01
Сб мар 14, 2015 17:28:42
Сб мар 14, 2015 22:31:07
Вс мар 15, 2015 00:10:25
Вс мар 15, 2015 00:11:38
pavel1979 писал(а):Я тоже долго парился с этим согласователем,потом плюнул-перевел все на питание 3,3 в,все работает.
Ср апр 15, 2015 10:18:03
Wire.beginTransmission(0x10); // Адрес чипа RDA5807M
Wire.write(0b11000000); // 02h
Wire.write(0b00000101); // 02L
Wire.write(0b00100100); //03H
Wire.write(0b10010000); // 03L
Wire.write(0b00000010); // 04h
Wire.write(0x00); // 04l
Wire.write(0b10001000); // 05h
Wire.write(0b00000100); // 05l
Wire.write(0x00); // 06h
Wire.write(0x00); // 06l
Wire.write(0b01000010); // 07h
Wire.write(0b00000010); // 07l
Wire.endTransmission();
Ср апр 15, 2015 11:49:41
Ср апр 15, 2015 12:13:20
Ср апр 15, 2015 12:13:55
WiseLord писал(а):Могу предложить два варианта:
1. Попробуйте посылать только первые 4 байта, остальные не отправлять вообще (пусть они будут в значениях по умолчанию).
2. Попробуйте байт 05L высылать как 0b10001111 (последние 4 бита - громкость на максимуме, первый бит тоже важен).
Можете на мой код глянуть - заголовочный файл, функции.
Ср апр 15, 2015 13:28:17