Например TDA7294

Форум РадиоКот • Просмотр темы - Котуинко
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт июл 25, 2025 23:22:55

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2246 ]     ... , , , 60, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн ноя 02, 2020 16:01:08 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ну у нанки/про-мини/уно базовая частота таки 16 МГц... И такое же в "родной" NG применяется...
Чуток полегше - а под 8/8а со встроенным RC явно не то будет.
Флажок конечно хорошо, но его ведь в общем цикле опрашивать надо - а то уже или очередь задач или простое ожидание "пока все подряд не перещелкают"... Это при максимальной длине "кадра" в 4 миллисекунды (развертка 62Гц)...
Так что независимо вертящееся с моего взгляду получше... ОТНОСИТЕЛЬНО...
Да и сам процесс обслуживания дисплея достаточно простенько-коротенький - погасить аноды, скинуть из ОЗУ код в порт байта, зажечь по анодам да считать возвратный с клавиатуры.
Ну и в конце цикла при необходимости скопировать 4 байта из одного массива в другой.
Не слишком то и долго (даже под Си).
:roll:
Главное на моей "паутинной монтаЖОПе" вполне себе красивенько циферки гоняет. Без мерцаний/подсветов и прочей гадости.
И кнопы на нажатие аккуратненько отзываются (несмотря на всего два опроса на каждом знакоместе).
Следовательно и покрасивше упакованная будет еще лучше работать.
Жаль только до....на лапок зазря израсходовалось... уж много удобнее хотя бы 595й под сегменты выставить...
:(
Зато хоть "теорию" на практике прокрутил.
:hunger:
Кыстати... я пока только заголовочник сыскал - arduino.h (их там натыкано во многих местах, но вроде все одинаковые)...
А вот где исходники *.с/*.срр к ним искать? Тем более, что у каждой платформы возможны различия...
:dont_know:

Миллис можно б и без выключения прерываний... но то на таком таймере, где "захват на лету" возможно выполнить...
А ежли уже изначально заложена"огрешность" - так и останется в данном случае.
Ну да то не столь уж и плачевно...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пн ноя 02, 2020 16:18:48 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
осталось попробовать
Цитата:
// ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА (режим совпадения по OCR0A)
OCR0A = 254

- мож кому с такой частотой индикацию регенерировать надо, таймер на другой пределитель низя - милисы и пр. сдуются.
про 595 изначально предлагалось.
а исходники на гитхабе вестимо
https://github.com/arduino/ArduinoCore- ... es/arduino
Цитата:
Ну у нанки/про-мини/уно базовая частота таки 16 МГц... И такое же в "родной" NG применяется...
Чуток полегше - а под 8/8а со встроенным RC явно не то будет.

у MsTimer2 усё продумано и мега8 и частоты разные:
Спойлер
Код:
#elif defined (__AVR_ATmega8__)
   TIMSK &= ~(1<<TOIE2);
   TCCR2 &= ~((1<<WGM21) | (1<<WGM20));
   TIMSK &= ~(1<<OCIE2);
   ASSR &= ~(1<<AS2);
   
   if ((F_CPU >= 1000000UL) && (F_CPU <= 16000000UL)) {   // prescaler set to 64
      TCCR2 |= (1<<CS22);
      TCCR2 &= ~((1<<CS21) | (1<<CS20));
      prescaler = 64.0;
   } else if (F_CPU < 1000000UL) {   // prescaler set to 8
      TCCR2 |= (1<<CS21);
      TCCR2 &= ~((1<<CS22) | (1<<CS20));
      prescaler = 8.0;
   } else { // F_CPU > 16Mhz, prescaler set to 128
      TCCR2 |= ((1<<CS22) && (1<<CS20));
      TCCR2 &= ~(1<<CS21);
      prescaler = 128.0;
   }


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт ноя 03, 2020 11:25:30 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Я изначально ни Т1 ни Т2 трогать не собирался - интересовало или вписаться в пару
tone() -> attachInterrupt()...
или попробовать, чего из того книжна совета насчет Т0 получится.
Оное то получилось, но вывести результат в отдельный файл/класс при tone() -> attachInterrupt() оказалось муторно...
"Добавка" к Т0 дает только дублирующую генерацию миллисекунды для какого-то собственного процесса.
Причем независимо от того, что в OCR0A записано результирующий интервал прерывания будет та же 1миллисекунда, а вот ее смещение от "родимой"системной от содержимого OCR0A явно зависит.
Однако для дисплейного модуля с х4 остается всего-то 4 "тика" на каждую позицию (62,5 Гц)...
Для более высокочастотной развертки такой вариант проблематичен, но для примитива - вполне достаточно.
Собственно заменить прямой вывод на сброс в последовательный регистр за 0,002 секунды вполне можно....
Вобщем то, что было интересно я таки посмотрел в реал-макете и "в заметки" закинул.
8)
Насчет запрета на прерывания у миллисов...
У нас же 4х байтовое длинное целое - а организация ОЗУ 1-байтовая.
Причем запрос асинхронен по отношению к генератору системной частоты.
Вот и запрет прерываний... Насчет SREG - то уже как программа пересылки данных устроена - ежли на счетчиках, то необходимо - ежли как иначе...
В принципе там чтение с последующей записью - достаточно команд, чтоб вклинившееся прерывание данные успело испортить.
РУТИНА обычная в подобных случаях...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт ноя 03, 2020 14:22:16 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Я изначально ни Т1 ни Т2 трогать не собирался ...
или попробовать, чего из того книжна совета насчет Т0 получится

странные советы для true ардуинщиков - милисы ж это согласно "референсу" для индикации и ничего большего не нужно
спокойно в loop() считывай милис типа:
Код:
unsigned long temp_millis;

loop(){
   
  if(temp_milis != millis())
  {
    temp_millis = millis());
    ПодпрограмммаИндикации();
    ПодпрограммаКлавиатурыi();
  }
  ... тут еще много полезного можно сделать();
  ... а тут еще();
  ... и т.д.();
}

и можно много писанины поупрощать - и количество digitalWrite резко уменьшится :
Спойлер
Код:
// список выводов Arduino для подключения к разрядам a-g
// семисегментного индикатора
int pins[8]={9,13,4,6,7,10,3,5};
//список выводов Arduino для подключения к катодам.анодам
// семисегментного индикатора
int pindigits[4]={2,8,11,12};

// Сконфигурировать контакты как выходы
for(int i=0;i<8;i++)
  pinMode(pins[i],OUTPUT);
for(int i=0;i<4;i++)
{
  pinMode(pindigits[i],OUTPUT);
  digitalWrite(pindigits[i],HIGH);
}

// функция вывода цифры на семисегментный индикатор
void showNumber(int num)
{
  for(int i=0;i<7;i++)
  {
    if(bitRead(numbers[num],7-i)==HIGH) // зажечь сегмент
    digitalWrite(pins[i],HIGH);
   else // потушить сегмент
   digitalWrite(pins[i],LOW);
   }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт ноя 03, 2020 15:01:41 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Любой опрос в цикле - хорош только для тех случаев, где размер цикла явно меньше интервала индикации.
В ином случае будут сдвиги в произвольные моменты времени. Мы же не знаем, чего еще помимо обслуживания дисплея прожка делать будет, а те задачки могут бысть весьма громоздкими.
Независимый процесс на прерывании заметно стабильнее работает.
Относительно вывода - при "байтовой" структуре порта там вообще проблем не имеется. Только вот таких МК на сегодня не так уж много да и раскладка выводов у адуриньи УЖЕ сделана без учета линейной "байтовости".
А в моем примере вообще "чехардень" из выводов, относящихся к разным портам МК (так уж ранее разводка выполнялась - влом менять для "поиграться").
Цикл на счетчике в таком случае заметно хуже, чем перебор восьми комбинаций пересылки бита по фиксированным значениям.
Касательно переброса через массивы - смотрится неплохо, только нерационально - минимум два массива, да сопровождение.
В принципе под ассемблером там всего-то биты перегоняются, а вот под Си или аж 12 байт с содержимым 1/0 или еще чего (структура с битовыми полями)...
Как бы общий размер используемых ресурсов заметно больше не оказался.
Добавить последующие "рожки" кои повылазят при выводе фрагмента в отдельный файл/библиотеку...
То уже можно вылизывать лишь в готовом тексте, который работает.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт ноя 03, 2020 15:29:43 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
Любой опрос в цикле - хорош только для тех случаев, где размер цикла явно меньше интервала индикации.

а чего там еще в часах да и других задачах делать в цикле больше миллисекунды - например между миллисекундой прекрасно опрашивается DS18B20 (добавить в часы термометр самое то). Даже термопарный полином быстрее считается. Цель то каковая была:
Цитата:
Главное на моей "паутинной монтаЖОПе" вполне себе красивенько циферки гоняет...

Цитата:
Цикл на счетчике в таком случае заметно хуже, чем перебор восьми комбинаций пересылки бита по фиксированным значениям.

все тоже самое, только проще - в массиве те же фиксированные значения. И "чехардень" очень красиво причесывается.
Цитата:
только нерационально - минимум два массива, да сопровождение.

шо так константы, шо так, а сопровождать удобнее - вжух и в масиве в одной строчке нужное поменял.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Вт ноя 03, 2020 21:56:31 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Массив это рядок данных(переменных) в ОЗУ, а их считать ещё надо.
А константа входит в состав команды.
Хотя... Как там компилятор все перекручивает - смотреть при обеих вариантах результат надо...
8)
Мне более интерес к "выноске" полученного в библиотечку.
А там уже и "причесать" можно будет.
:roll:
Касательно возможных нюансов прикладной программы - это вопрос довольно сложный - лучше сразу на максимум проблем рассчитывать - потом легче будет.
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср ноя 04, 2020 09:02:40 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Это ж массив стандартных пинов ардуино - что там считать то. Впервые слышу про какой-то счет массивов.
Почитал - согласно ардуиновому референсу для констант во флэши используем PROGMEM:
https://www.arduino.cc/reference/en/lan ... s/progmem/
Как перекручивает, проведем упрощенный тест - тут перечислены родные ардуиновые пины, опять строго согласно референсу:
Код:
#include "Arduino.h"
// список выводов Arduino для подключения к разрядам a-g
// семисегментного индикатора
const uint8_t pins[8] PROGMEM = {9, 13, 4, 6, 7, 10, 3, 5};

int main()
{
    while (1)
    {
        // зажечь сегмент
        for (int i = 0; i < 7; i++)
            digitalWrite(pins[i], HIGH);
    }
}

Смотрим листинг, и видно, как красивенько берет из флэша (2 команды загрузка адреса и 3 команды в цикле):
Код:
- это наш масив, во флэши конечно
00000076 <_ZL4pins>:
  76:   09 0d 04 06 07 0a 03 05

- это загрузка адреса 
   46c:   c6 e7          ldi   r28, 0x76   ; 118
 46e:   d0 e0          ldi   r29, 0x00   ; 0
 
- это просто цикл
    while (1)
    {
        // зажечь сегмент
        for (int i = 0; i < 7; i++)
            digitalWrite(pins[i], HIGH);
 470:   61 e0          ldi   r22, 0x01   ; 1
 472:   89 91          ld   r24, Y+
 474:   15 de          rcall   .-982       ; 0xa0 <digitalWrite>
 

по расходам у нас получилось:
Цитата:
AVR Memory Usage
----------
Device: atmega8

Program: 266 bytes (3.2% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)

ROM = 266, ОЗУ = 0

з.ы. с опцией компилятору -flto - еще меньше

Насчет возможных "нюансов прикладной программы" - опрос флагов или засыпание в основном цикле с пробуждением от прерывания таймера/ацп/ватчдога/усарта/кнопки и пр. это стандартная практика в программировании микроконтроллеров и при правильном применении - никаких нюансов.
см. тут Важные замечания:
https://arduinomaster.ru/program/preryv ... interrupt/
Цитата:
В обработчике вы можете лишь устанавливать флаг события, а в loop – проверять флаг и обрабатывать его

а тут как ардуинисто спать:
https://tsibrov.blogspot.com/2018/02/ar ... -down.html

"выноска" полученного в библиотечку - лучше сразу на максимум проблем рассчитывать - потом легче будет.(с)
насчет как правильно использовать таймер0 и прерывание по совпадению оного написано тут:
https://voltiq.ru/wiki/interruptions-in-arduino/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср ноя 04, 2020 16:43:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2116
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18403
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
oleg110592 по сути является версией Google "с доставкой на дом" :))) по любому вопросу 100500 ссылок на то, что уже есть готовенького. я даже удивляюсь: вот я, например, больше 20 лет программирую, а 99,999% этих ссылок ни разу даже не видел! когда программировать-то, если все читать?!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср ноя 04, 2020 17:06:32 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
тож этих ссылок раньше не видел - просто типа как в песне "русский матрос всегда задать умеет правильный вопрос"(с) гуглу


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Ср ноя 04, 2020 20:21:04 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Меня варианты "вылизывания" в данном случае не столь уж и волновали.
Для начала хотя бы "черновик" работоспособный сделать при условии, что функция обработки прерывания слопает кусманчик или в виде объекта метода внешнего класса или в лучшем случае удастся ее упаковать вместе с файлами того класса...
Т.е. содержимое функции обработчика прерывания находится во внешних файлах проекта, а функция вызова прерывания - в основном (или посложнее - в тех же "внешних" файлах).
Примерно воть так первый примитив выглядит:
Спойлер
Код:
void setup()
{
  // put your setup code here, to run once:
// Serial.begin(9600); // для сообщений тест-контроля

test_ksd.init_csd4(); // инициализация ККД

}
//----------
void loop()
{
  // put your main code here, to run repeatedly:

  //..........
}


//***************************************************
//              ПОДВАЛ С ФУНКЦЯМИ
//***************************************************

//----------
// ОБРАБОТЧИК ПРЕРЫВАНИЯ (режим совпадения по OCR0A)
// (по факту дублер системной миллисекунды)
// в качестве функции выполняется метод sdr_prog()
// объекта test_ksd класса ksd4

SIGNAL(TIMER0_COMPA_vect)
{
  test_ksd.sdr_prog();
}

// область функционала ККД завершена

а вот упрятать
Код:
SIGNAL(TIMER0_COMPA_vect)
{
  test_ksd.sdr_prog();
}

во внутренность файлика ksd4.cpp поока не удалось...
:(
Когда все в одном главном файле - это всегда без проблем работает, но уж больно гормоздко.
8)
Вроде первый вариант кой-как получился...
Вложение:
ksd4_rtl.zip [8.91 KiB]
Скачиваний: 159

Корявенько... но таки работает...
:wink:
УФФ...
Малость надо дать мозгам и компу отдых...
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт ноя 05, 2020 13:29:20 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
с нетерпеньем жду продолжения - согласно начальной схеме в программе вроде еще не задействована DS1307 и еще 2 шт. MOC3063 (наверное по будильникам что-то включают). Очень интересно - не будут ли мешать проведенные манипуляции с тамером0 работе часовой микросхемы по и2цэ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт ноя 05, 2020 14:19:46 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Была бы какая-то польза от того....
:sleep:
А I2C (для ведущего шины) у меня ПРОГРАММНЫЙ (лаподрыгом выполнен) на любые лапки выводится.
Там никакой разницы где, чего и как может быть "приторможено" - собственно сам протокол из тех, где ведущий может остановить обмен на неопределенное время, без вреда для данных.
Вложение:
mxiic.zip [4.38 KiB]
Скачиваний: 151

Баловался как-то с 1307 и адуринкой.
Кстати тогда и обратил внимание на имевшую место ранее ошибку алгоритма, которую устранил в данной библиотечке.
8)
И... таким же образом - через SIGNAL(name_vector){} можно и прерывания по INT0/INT1 для платформ на AVRках обрабатывать...
А где б те правильные имена векторов сыскать..? Неумудренному АВРкиным Си...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт ноя 05, 2020 16:06:10 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
польза - проверить ардуино на вшивость. А часики с гибким фунционалом, ну например с 485 интерфейсом, возможно нашли бы применение в народном хозяйстве и даже промышленности. У меня, например спрашивали производственники часы большие, с показом температуры произведенных блоков поролона - возможны возгорания без контроля. Сейчас втыкают китайские термометры для духовки и ходят, ходят, каждый осматривают. Индикаторы большие можно сделать на ws2812 (библиотека ардуиновая есть) как тут:
https://www.radiokot.ru/forum/viewtopic ... 2&t=153087
з.ы. созрела идея - в часы работы часы светят красным, за 15 минут до окончания работы - желтым, в конце работы - зеленым :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Чт ноя 05, 2020 20:26:53 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Я проверяю или действующей схемой ( если устройство для домашней прикладного использования) или имеющимся набором макет-заготовок.
Этот "примитив" (х4 с совмещённый кноподавой) хорошо компонуется с простейшими конструкциями с МК имеющими "рядную" разводка портов - в частности с at89cX051 или аттини2313. Но там уже давно все под ассемблером перекручено. А для адуринки такое решение экономически неэффективно (по многим причинам).
Большой дисплей на основе чего угодно - от ламп накаливания до светодиодных лент размерами в ковырнадцать метров тоже скучновато...
Творческое спадо однако.... Осеннее...
:(
Подразжится парой динамичков да приемничек замутить...
:roll:
Может ещё последовательный обмен по 232му асинхроннику покручу...
:dont_know:
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт ноя 06, 2020 10:28:07 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Подразжится парой динамичков да приемничек замутить...

дык у ардуиновым часам, ардуиновый приемник прикрутить и на радиокоте будут часы с будильнико-приемником, там все просто:
Код:
#include "Wire.h"
#include "TEA5767Radio.h"

TEA5767Radio radio = TEA5767Radio();
void setup()
{
Wire.begin();
radio.setFrequency(105.0); //Здесь укажите частоту вещания
принимаемой радиостанции в МГц
}
void loop()
{
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт ноя 06, 2020 11:09:53 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
НЕ...
В наличии лишь RDA5807 (уже порядком подзалежалась)...
За силабьи... только помечтамс...
:sleep:
Да и прожку предпочтительно самому нашкарябать - там ничего особого нету, чтоб чужие библиотеки ставить.
Обычный I2C да немножко мутноватое описание и питание от 3 вольтей...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Пт ноя 06, 2020 11:24:06 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
глянул в интернет-киоске возле мясного - "TEA5767-MODUL" 1.5$, "Модуль RDA5807M FM радиоприемник Arduino" 30 центов, а писать уж точно - самому там нечего
Код:
void TEA5767Radio::setFrequency(float frequency)
{
     unsigned int frequencyB = 4 * (frequency * 1000000 + 225000) / 32768;
   byte frequencyH = frequencyB >> 8;
   byte frequencyL = frequencyB & 0XFF;
   Wire.beginTransmission(_address);
   Wire.write(frequencyH);
   Wire.write(frequencyL);
   Wire.write(0xB0);
   Wire.write(0x10);
   Wire.write(0x00);
   Wire.endTransmission();
   delay(100); 
}

https://github.com/kelubo/MyHome/blob/m ... 7Radio.cpp


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Сб ноя 07, 2020 09:07:16 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
oleg110592 по сути является версией Google "с доставкой на дом" :))) по любому вопросу 100500 ссылок на то, что уже есть готовенького. я даже удивляюсь: вот я, например, больше 20 лет программирую, а 99,999% этих ссылок ни разу даже не видел! когда программировать-то, если все читать?!

Ну как же! Сначала посмотрел как у людей, а затем написал по своему, может даже лучше.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Котуинко
СообщениеДобавлено: Сб ноя 07, 2020 09:30:30 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Без "подсмотрел" на сегодня никак не обходится - те же книжи как по компиляторам, так и по железу. Крайне редко попадаются пошагово "разжеванные" примеры описаные на понятном языке (у каждого ведь свой уровень понимания - зависит и от опыта и от привычной подачи материала с неизменно присутствующим компонентом "а Вы это уже знаете")...
Правда есть некоторая разница - или "на побыстрее" соорудить на основе чужих библиотек (о стандартном минимуме, входящем в набор компилятора или адуринкина референса речь не идет) или научиться самому делать собственные софтинки на основе "стандартного минимума" входящих в состав компилятора(референса) средств да документации на железко - но то заметно дольше да и сложнее.
Зато результат для себя приятнее и в дальнейшем с софтинкой можно чего захочется сотворить (изменить/доработать). Плюс понимание работы того, чего нашкарябал.
8)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2246 ]     ... , , , 60, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y