Страница 7 из 21 Первая ... 5678917 ... Последняя
Показано с 121 по 140 из 410

Тема: Продолжим ... Микроконтроллер в УМЗЧ

  1. #1 Показать/скрыть первое сообщение.
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Продолжим ... Микроконтроллер в УМЗЧ

    в продолжение ране поднимаемой мной темы,
    наконец-то потихоньку начал колупать проц
    планирую:

    1. Поддержка ДУ, СОни или самсунг (провозившись месяц без описания с глюком симулятора я его замучил - теперь работает четко)
    2. Программирование любой клавиши на любую команду
    3. Измерение мощности/уровня сигнала
    4. Регулировка громкости - 2 канала
    5. Установка порога срабатывания защиты по мощности
    6. Таймер на вкл/выкл
    7. 16 команд на 4 лапах через дешифратор/ либо 4 лапы поочередно. (пнапример на коммутатор входа)
    8. Естественно индикация всего этого

    что еще можно? Ваши мысли
    например, в меню настройку - типа ограничить макс мощность на уровне 50Вт - чтоб если более - чип сам громкость чуть снижал итд ...

    вопрос такой,
    регулятор громкоси как не очень сложно и более менее качественно реализовать?
    микрухи типа АД5222 не подходят из-за низкого питания.

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

    чип - АТМЕГА128 - ибо ест ьнахаляву в лице Белого
    с моими атмега169 фигня произошла, в доке очень серьезная ошибка есть - может атмел поправит - написали им в сапорт.

  2. #121
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    По простоте использования решению на моторезированном Alps-е равных нет
    зато есть по качеству, релейный РГ

  3. #122
    Регистрация не подтверждена
    Регистрация
    05.08.2004
    Адрес
    Piter
    Сообщений
    4,846

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Цитата Сообщение от Евгений Верис
    зато есть по качеству, релейный РГ
    Это слишком тонкие материи, хотя решение на реле мне симпатично.

  4. #123
    Завсегдатай Аватар для GoFrenDiy™
    Регистрация
    01.06.2004
    Адрес
    Некрасовский
    Возраст
    42
    Сообщений
    1,491

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Как Вы оцениваете PGA2310? Хочу на них устроить регулировку 5.1

  5. #124
    Happy little boozer Аватар для Viking
    Регистрация
    11.10.2004
    Адрес
    Украина, г.Хмельницкий
    Возраст
    46
    Сообщений
    1,079

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Цитата Сообщение от GoFrenDiy™
    Как Вы оцениваете PGA2310? Хочу на них устроить регулировку 5.1
    Для этого дела есть SSM2160.

  6. #125
    Завсегдатай Аватар для igorkuz
    Регистрация
    11.06.2005
    Адрес
    Москва
    Возраст
    60
    Сообщений
    2,057

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Цитата Сообщение от Wh`te
    igorkuz, Зачем в усиле спдиф? И как он улучшит например интермодуляцию?
    У меня и сидюк и минидиск имеют оптические выходы, просто интересно насколько лучше или хуже они будут звучать, при подключении их через
    SPDIF.

  7. #126
    Завсегдатай Аватар для GoFrenDiy™
    Регистрация
    01.06.2004
    Адрес
    Некрасовский
    Возраст
    42
    Сообщений
    1,491

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Цитата Сообщение от Viking
    Для этого дела есть SSM2160.
    А у меня есть PGA2310...
    А что 2160 лучше? Чем кроме того, что она 6 ти канальная...

    [ADDED=GoFrenDiy™]1121533370[/ADDED]
    Да и по хар-кам PGA2310 круче!
    Последний раз редактировалось GoFrenDiy™; 16.07.2005 в 21:02.

  8. #127
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    igorkuz, при чем тут сидюк СПДИФ и усилитель?
    или ты в усилитель хочешь ЦАПу воткнуть? тогда в другую ветку.

  9. #128
    Завсегдатай Аватар для igorkuz
    Регистрация
    11.06.2005
    Адрес
    Москва
    Возраст
    60
    Сообщений
    2,057

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Евгений Верис,
    Да не то что бы в усилитель, а вот отдельным блочком бы может и подумал!
    Да вопрос не в том. Назрела новая тема. Открываем.

  10. #129
    Старый знакомый
    Регистрация
    20.11.2003
    Адрес
    Йошкар-Ола
    Сообщений
    574

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Так откуда скачать программу?

  11. #130
    Старый знакомый Аватар для Wh`te
    Регистрация
    08.02.2003
    Адрес
    Томск
    Возраст
    48
    Сообщений
    620

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Какую программу

  12. #131
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Konstantin, какую?

  13. #132
    Частый гость
    Регистрация
    10.12.2002
    Адрес
    Харьков
    Возраст
    43
    Сообщений
    269

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Какую каккую, прошивку на МК

  14. #133
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

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

  15. #134
    Старый знакомый
    Регистрация
    20.11.2003
    Адрес
    Йошкар-Ола
    Сообщений
    574

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Цитата Сообщение от Евгений Верис
    а она пока только в мыслях, ну частично в макетках.
    целиком еще руки не дошли.
    к осени - не раньше.
    лето паниаишь ...
    Ждем и надеемся а также желаем удачи.
    Хотя осень уже не за горами.

  16. #135
    Старый знакомый Аватар для Wh`te
    Регистрация
    08.02.2003
    Адрес
    Томск
    Возраст
    48
    Сообщений
    620

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    А там и девелопмент кит для AVRa поспеет как раз ;)

  17. #136
    Частый гость
    Регистрация
    10.12.2002
    Адрес
    Харьков
    Возраст
    43
    Сообщений
    269

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Кто нибудь может дать ссылку или готовый код на С для декодирования кода RC5 (желательно с подробными комментариями)?
    Гугл выдает только ассемблерный код...

    Я теории по RC5 себе накачал-поизучал, но так как с МК только только связался, написание декодера займет много времени
    Научился уже светодиодами и релюхами управлять, прерываниями и таймерами пользоваться.
    Щас с обработкой нажатия кнопок маюсь.

    И еще попутно:
    У меня мега16-я в даташите написано что частота могет быть 0-16МГц. На счет 0 эт они врут конечно. Какая минимальная частота может быть?

    И что за зверь "датчик снижения напряжения" ? Я так понимаю он следит за напругой и при снижении (поднятии при включении) до определенного уровня блокирует работу МК. Как этим зверем пользоваться? что-то в даташите не нашел...

  18. #137
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

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

    // ***********************************************************
    // Project:
    // Author:
    // Module description:
    // ***********************************************************

    #include <avr\io.h> // Most basic include files
    #include <avr\interrupt.h> // Add the necessary ones
    #include <avr\signal.h> // here

    // Define here the global static variables
    //
    unsigned char Start, // флаг прихода стартового импульса
    Start_now, // флаг прихода старта в текущей сессии прерывания
    data, // данные побайтно
    bit_count, // кол-во полученных бит
    command, // команда (двоичная форма)
    status, // режим отображения (0 - код, 1 - уровень)
    volume; // уровень

    void start_pulse(void); // проверка длительности стартового импульса
    void no_packet(void); // помеха, обнуление данных
    void data_in(void); // проверка получаемых бит
    void data_end(void); // проверка полученных данных побайтно

    //******************
    //******************
    SIGNAL (SIG_OVERFLOW1) // обработка прерывания таймера1
    {
    no_packet(); // обнуление данных
    }
    //******************
    SIGNAL(SIG_INTERRUPT0) // обработка прерывания0 (кнопка)
    {
    PORTA=0xFF; // выключить светодиоды
    TCNT0=0; // сброс таймера0
    TCCR0=5; // запуск таймера0
    while (!(TIFR&0x02)); // ждать прерывания от таймера0
    TIFR = 0x02; // сброс флага прерывания таймера0
    TCCR0=0; // останов таймера0
    PORTA=0x00; // включить светодиоды

    no_packet(); // обнулить данные
    }
    //******************
    SIGNAL(SIG_INTERRUPT1) // обработка прерывания1 (фотоприемник)
    {
    TCCR1B=0; // остановить таймер

    if (Start==0) // если старта не было
    {
    // ждем стартового импульса
    if (MCUCR==0x0A) // и прерывание стоит на спад
    {
    TCNT1=0; // обнулить таймер
    TCCR1B=0x4; // запустить таймер
    MCUCR=0x0E;
    }
    else // иначе
    {
    start_pulse(); // вычисление интервала полученного импульса
    if (Start==0) // если старт не получен
    {
    no_packet (); // обнуление всех данных
    }
    else // если старт был
    {
    MCUCR=0x0E; // прерывание на фронт
    Start_now=1; // стартовый импульс пришел в текущей сессии прерывания
    }
    }
    }
    // старт получен принимаем данные
    if ((Start==1)&(Start_now==0))
    {
    if (MCUCR==0x0E) // если старт был не сейчас и прерывание стоит на фронт
    {
    TCNT1=0; // обнулить таймер
    TCCR1B=0x3; // запустить таймер
    MCUCR=0x0A; // прерывание на спад
    }
    else // иначе
    {
    data_in(); // проверка полученного бита
    MCUCR=0x0E; // прерывание на фронт
    if (bit_count==32) // если получено 32 бит данных
    {
    data_end(); // проверка кода полученной команды
    }
    }
    }
    if (Start_now==1) // если стартовый импульс пришел в текущей сессии прерывания
    {
    Start_now=0; // обнулить
    }
    }
    //******************
    void start_pulse(void) // вычисление стартового импульса
    {
    if (TCNT1L>17) // если получен стартовый импульс 4.8милисек
    {
    if (TCNT1L<21)
    {
    Start=1; // установить флаг
    }
    }
    }
    //******************
    void no_packet(void) // импульсы помехи, обнуление всех данных
    {
    Start=0;
    Start_now=0;
    MCUCR=0x0A;
    TCCR1B=0;
    TCNT1=0;
    data=0;
    bit_count=0;
    }
    //******************
    void data_in(void) // проверка полученного бита
    {
    if (TCNT1L>=2) // от 10 до 100 = 0
    {
    if (TCNT1L<20) // здесь влом было подбирать точные значения для 0 и для 1
    { // итак все работает
    data<<=1;
    bit_count++;
    }
    else
    if (TCNT1L>=20) // от 150 до 250 = 1
    {
    if (TCNT1L<=30)
    {
    data<<=1;
    data=data+1;
    bit_count++;
    }
    else
    {
    no_packet(); // обнуление данных если помеха импульсная
    }
    }
    }
    else
    {
    no_packet(); // обнуление данных если помеха импульсная
    }
    }
    //******************
    void data_end(void) // обработка полученного байта
    {
    command=data; // первый байт - код устройства (пока не используется, просто зарезервировано временно)
    if (command==167) // кнопка MENU
    {
    if (status==0)
    {
    status=1; // сменить режим
    }
    else
    {
    status=0;
    }
    }
    if (status==1) // если статус=1 то
    {
    if (command==31) // VOL+
    {
    if (volume<8)
    {
    volume++;
    }
    }
    if (command==47) // VOL-
    {
    if (volume>0)
    {
    volume--;
    }
    }
    switch (volume) // выбрать значение уровня и показать на светодиоды
    {
    case 0:
    PORTA=0xFF; // 255
    break;
    case 1:
    PORTA=0xFE; // 254
    break;
    case 2:
    PORTA=0xFC; // 252
    break;
    case 3:
    PORTA=0xF8; // 248
    break;
    case 4:
    PORTA=0xF0; // 240
    break;
    case 5:
    PORTA=0xE0; // 224
    break;
    case 6:
    PORTA=0xC0; // 192
    break;
    case 7:
    PORTA=0x80; // 128
    break;
    case 8:
    PORTA=0x00; // 0
    break;
    }
    }
    else
    PORTA=command; // иначе показать коды кнопок

    no_packet(); // обнуление данных

    TCNT0=0; // сброс таймера0
    TCCR0=4; // запуск таймера0
    // небольшая пауза, чтоб нажатая кнопка и удерживаемая слишком быстро не "нажималась"
    while (!(TIFR&0x02)); // ждать прерывания от таймера0
    // паузу подобрать под конкретную задачу
    TIFR = 0x02; // сброс флага прерывания таймера0
    TCCR0=0; // останов таймера0
    }

    // ***********************************************************
    // Main program
    // s
    int main(void)
    {
    // инициализация проца
    DDRA=0xFF; // out
    PORTA=0x00;

    DDRB=0xFF; // out
    PORTB=0x00;

    DDRD=0x00; // in
    PORTD=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x82; // обработка прерываний от таймеров 0,1
    ETIMSK=0x00;
    TCCR1B=0x00;

    MCUCR=0x0A; // прерывания 0 и 1 на спад импульса
    EMCUCR=0x00;
    GICR=0xC0; // включить обработку прерываний 0 и 1

    Start=0;
    Start_now=0;
    data=0;
    command=0;

    status=0;
    volume=0;

    asm ("sei"); // включить обработку всех прерываний

    while(1)
    { // рабочий цикл
    asm ("nop");
    }
    }

  19. #138
    Завсегдатай Аватар для Инквизитор
    Регистрация
    18.06.2004
    Адрес
    Сколково
    Сообщений
    1,991

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    А там и девелопмент кит для AVRa поспеет как раз ;)
    Тогда уж лучше для ARM заказывать. Они скоро дешевле AVRок будут. Мы вон заказали недавно evaluation board под AT91SAM7S256 -около 150 уе, время освободиться - поЩЩупаю

  20. #139
    Завсегдатай
    Автор темы

    Регистрация
    27.05.2004
    Адрес
    Мск
    Сообщений
    1,412

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    процессор атмега162,
    приемник ИК висит на ИНТ1
    на порт А - светодиоды, отобржат последние 8Бит принятого кода

  21. #140
    Частый гость
    Регистрация
    10.12.2002
    Адрес
    Харьков
    Возраст
    43
    Сообщений
    269

    По умолчанию Re: Продолжим ... Микроконтроллер в УМЗЧ

    Евгений, спасибо! А каким компилятором и средой пользуешься? Что то ни на Imagecraft ни на CodeVision не похоже

Страница 7 из 21 Первая ... 5678917 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

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