Страница 17 из 21 Первая ... 71516171819 ... Последняя
Показано с 321 по 340 из 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. #321
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Alex Посмотреть сообщение
    Это можно сделать кучей разных способов, в зависимости от типа микроконтроллера.
    Например:
    1) пробуждение по внешнему прерыванию
    2) пробуждение по изменению состояния ножек порта
    3) пробуждение по внутреннему событию (WDT, конец пребразования ADC и т.п.).

    п2 - используется почти во всех дистанционных управлениях (в пультах).
    я очень часто использую п.3 при работе с WDT.
    Я только начал осваивать МК и поэтому у меня возникает вопрос - что такое WDT? Сейчас уже освоил опрос кнопок с антидребезгом, управление 7-ми сегментником (счет в плюс и минус), прием команд RC-5 с помощью внешнего прерывания и их декодирование, управление ЖКИ и вывод на него информации. Все это происходит с ATmega8, на внутреннем 1МГц.
    Пытаюсь научиться управлять DAC8512 (пока ничего не выходит - логику вроде понимаю, но компилятор ругается). Потом надо научиться управлять регистром 74HC595.
    А вот о кнопочке Power в таком контексте еще не задумывался! Вообще планируется 8 кнопок (в том числе и Power). Поскольку портов не хватает (2 порта на валкодер, 1 порт - IR, 6 портов - ЖКИ, 1 порт - управление реле Power, 3 порта - дешифратор входного селектора, 4 порта на два DAC8512), думаю обрабатывать их с помощью АЦП. Но в таком случае пробуждение может происходить только по п.2!
    Кстати, Александр! У вас нет каких-нибудь исходников на Си для управления 12-ти битным ЦАП?
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  3. #322
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,707

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Я только начал осваивать МК и поэтому у меня возникает вопрос - что такое WDT?
    Watch Dog Timer - "сторожевая собака" (или как я его назвал в свое время в АОНах -"антизависатор").
    Присутствует практически во всех современных (ну за последние лет 15-20) микроконтроллерах.
    Представляет собой автономный (т.е. не связанный с остальной схемой контроллера) RC-генератор, включить-выключить которых из программы как правило нельзя (т.е. это делается в управляющих регистрах при прожиге), можно иногда поменять его частоту (делитель после него).
    Смысл его в том, что в программе его надо все время периодически сбрасывать, тем самым давая понять что программа не зависла, что все работает нормально.
    Если что-то происходит с программой (или процессор в спячке), то таймер не сбрасывается и генерирует сброс (или переход по вектору). При этом обычно существуют средства (в регистрах МК), позволяющие определить причину сброса - внешний ресет, вотчдог или просто первое включение (подача питания).

    Так что, обычно программа по п.3 выглядит примерно так:
    Код:
    void Init(void){
    // тут начальная инициализация всего
    }
    
    void main(void){
       if (ColdStart) {
         if (есть команда на включение){
           // тут можем что-то сделать
           ON=1;
         } else {
           ON=0;
           Sleep();
       } else {
          Init();
       }
       while(ON){  //  основной цикл программы
            CLRDWTD();  // сброс вотчдога
            // тут собственно, вся программма, когда надо выключиться 
            // ON ставиться в 0 и выходим из основного цикла
       }
       Sleep();
    }
    может спросоня где-то и хомутнул, но прицип должен быть понятен.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  4. #323
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Все понял Александр ! Попробую разобраться (применить к своим прогам) с тем, что дали. А что по поводу вот этого:
    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    У вас нет каких-нибудь исходников на Си для управления 12-ти битным ЦАП?
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  5. #324
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,707

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    У вас нет каких-нибудь исходников на Си для управления 12-ти битным ЦАП?

    Не совсем понимаюю. во 1-х - каким именно ЦАПом?
    Во 2х - что значит "управление"? ЦАП обычно штука простая, в него надо просто писать данные и все.
    Если у него последовательный интерфейс- надо преобразовать данные.
    Скажи какой ЦАП - может смогу помочь, если время будет.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  6. #325
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    В общем надо запихать данные в два ЦАПа (DAC8512), соответственно для левого и правого канала предусилителя (SSM2018T). Имеет нечто вроде I2C с дополнительным входом Load Data.
    И такой еще вопрос - если опрашивать кнопки с помощью АЦП, то какой режим выбрать для него - непрерывной оцифровки или одиночной?! Если одиночной, то по какому событию запускать АЦ преобразование?
    Наткнулся на часть исходника:
    void port_init(void)
    {
    PORTB = 0x00;
    DDRB = 0x13;
    PORTC = 0x00;
    DDRC = 0x01;
    PORTD = 0x00;
    DDRD = 0xb3;
    }

    //ADC initialize. Conversion time: 75uS. Use AREF with AVCC
    void adc_init(void)
    {
    ADCSR = 0x00; // disable adc
    ADMUX = 0x07; // select adc input 7
    ACSR = 0x80; // analog comparator disable
    ADCSR = 0x86; // adc enable(7on), stop(6off), free run mode off(5off)
    // interrupt disable(3off) division factor 64(2on, 1on, 0off)
    }

    void init_devices(void)
    {
    CLI(); // запрещаем все прерывания
    port_init(); // инициализируем порты
    adc_init(); // инициализируем АЦП
    MCUCR = 0x0A; // задаем внешние прерывания int0,int1 по спаду
    GICR = 0xC0; // разрешеаем внешние прерывания int0,int1
    TIMSK = 0x00; // прерываний по переполнению таймеров нет
    SEI(); // разрешаем все прерывания
    }


    void ReadADC7(void)
    {
    ADMUX = 7; // записываем код канала
    ADCSRA |= 1 << ADSC; // запускаем АЦП
    while(ADCSRA & 0x40); // ждем, пока не завершится преобразование
    ADC7 = ADCL; // Read 8 low bits first (important)
    ADC7 |= (int)ADCH << 8; // read 2 high bits and shift into top byte
    }
    теперь думаю как его под себя сделать?!
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  7. #326
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,707

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    В общем надо запихать данные в два ЦАПа (DAC8512), соответственно для левого и правого канала предусилителя (SSM2018T).
    Господи, а попроще-то никак нельзя было, чем ставить VCA+DAC ?


    Имеет нечто вроде I2C с дополнительным входом Load Data.
    И еще Chip Select, кроме того - ни малейшего отношения к I2C эта шина не имеет, и называется она SPI или Microwire. С И2Ц - у нее просто ничгео общего, кроме того что все они поеледовательные, так СОМ-порт (RS232) тоже "последовательный


    И такой еще вопрос - если опрашивать кнопки с помощью АЦП, то какой режим выбрать
    Да в общем неважно, это зависит от общей структуры программы. Я чаще всего по таймеру делаю.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  8. #327
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Alex Посмотреть сообщение
    Господи, а попроще-то никак нельзя было, чем ставить VCA+DAC ?
    Мы простых решений не ищем ! А если серьезно, то просто так получилось - по случаю достались SSM2018T, решил сделать на них пред. Сначала управлял переменником, но лень взяла свое - решил лентяйку подключить... А ее можно "подключить" только с помощью ЦАПа..
    Цитата Сообщение от Alex Посмотреть сообщение
    еще Chip Select, кроме того - ни малейшего отношения к I2C эта шина не имеет, и называется она SPI или Microwire. С И2Ц - у нее просто ничгео общего, кроме того что все они поеледовательные, так СОМ-порт (RS232) тоже "последовательный
    Да, вы правы! Это че то я зациклился на И2С. На самом деле SPI.
    Думал Chip Select на общий посадить, а разрешать запись инфы по LD.
    Цитата Сообщение от Alex Посмотреть сообщение
    Да в общем неважно, это зависит от общей структуры программы. Я чаще всего по таймеру делаю.
    Не ну если постоянно будет включен, то это помехи на аналоговую часть и бОльший потребляемый ток. А вот если каждый раз запускать АЦП, то по какому событию не знаю - подскажите, пожалуйста, или хотя бы приведите примеры этих событий.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  9. #328
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,707

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Мы простых решений не ищем ! А если серьезно, то просто так получилось - по случаю достались SSM2018T, решил сделать на них пред.
    Ну скажем так, не самое лучшее, с точки зрения качесвта звука решение...

    Сначала управлял переменником, но лень взяла свое - решил лентяйку подключить... А ее можно "подключить" только с помощью ЦАПа..
    Ну вообще, можно и без ЦАПа обойтись, если в контроллере есть PWM (а если нет - не очень на большую частоту можно и программно сделать) - пропустил его через ФНЧ, вот и ЦАП готов.
    Аппаратный PWM в конроллерах как правило 8-10 бит, программный - можно сделать сколько угодно.


    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Не ну если постоянно будет включен, то это помехи на аналоговую часть
    Чего вдруг?


    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    и бОльший потребляемый ток.
    Кого это волнует? Оно что, от батареек питается? НУ будет МК потреблять на 10.55 а 10.6 мА, это существенно ?


    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    А вот если каждый раз запускать АЦП, то по какому событию не знаю - подскажите, пожалуйста, или хотя бы приведите примеры этих событий.
    Я уже сказал - по таймеру. У меня ппочти во всех устройствах, один таймер является системным, т.е. генерует прерывание (Как правило с частотой 1кГц), в котором круттся все счетчики времени (программные таймеры, временные задержки и т.п.), там же я обычно и обработку клавиатуры делаю и управляю АЦП при регулярных измерениях.
    Пр этом удобно делать сначала считывание данных из АЦП, а потом его запуск - чтобы не ждать конца прерывания (время преобразования гарантировано меньше времени между прерываниями.

    Ну а если так остро стоит забота о мифических "помехах" - тогда надо кнопки цеплять не на АЦП а на ноги порта, который умеет пробуждать контоллер из слипа по изменению состояния этих ног.
    Для 16-х PIC*ов - это половина порта В, для АВРов - не помню, давно с ними не работаю.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  10. #329
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Alex Посмотреть сообщение
    Ну вообще, можно и без ЦАПа обойтись, если в контроллере есть PWM (а если нет - не очень на большую частоту можно и программно сделать) - пропустил его через ФНЧ, вот и ЦАП готов.
    Аппаратный PWM в конроллерах как правило 8-10 бит, программный - можно сделать сколько угодно.
    Можно то можно (ATmega8 есть 3 PWM), но как насчет помех? Или если их хорошенько придавить на плате самого контроллера, то будет все зашибись? В даташите на SSm2018T предлагают именно DAC8512. Кстати, по качеству м/с очень хорошая - в звуке нейтральная (правда сравнивал с китайским хорошим переменником). При моей разводке - шума никакого!
    С PWM я еще не разбирался, исходников примерных не искал. Тут встала проблема с ЖКИ Powertip 2004. Почему-то при подключении к нему питания загораются строки 2 и 4 (вроде бы должны 1 и 3) и при подключении его к МК (в него зашита бегущая строка, предназначенная для дисплея с 16*2) ничего не происходит. Ведь что-то должно отображаться? И где найти адресацию его строк, команды для отображения 2-х, 4-х строк? Скачал именно на него ПДФ, но там все по стандарту, как будто это не 20*4, а 16*2... Помогите!!!
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  11. #330
    Старый знакомый Аватар для Quasar
    Регистрация
    16.03.2005
    Адрес
    Russia, Moscow.
    Сообщений
    620

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Скачал именно на него ПДФ, но там все по стандарту, как будто это не 20*4, а 16*2... Помогите!!!
    3 строка это продолжение 1-ой, 4 - продолжение 3-ей, кол-во ячеек в 16x2 и 20x4 одно и тоже, то есть для МК всё равно какой дисплей подрублен 16x2 или 20x4. А то что там, загораются какие-то строки, так это может ЖК инициализацию нормально не проходит???

  12. #331
    Регистрация не подтверждена
    Регистрация
    09.10.2006
    Адрес
    Ukraine, Cherkassy
    Возраст
    36
    Сообщений
    322

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

    Цитата Сообщение от Quasar Посмотреть сообщение
    3 строка это продолжение 1-ой, 4 - продолжение 3-ей, кол-во ячеек в 16x2 и 20x4 одно и тоже, то есть для МК всё равно какой дисплей подрублен 16x2 или 20x4. А то что там, загораются какие-то строки, так это может ЖК инициализацию нормально не проходит???
    Пркол в том что в дисплей вшита еще своя прошывка вообщем надо по сотреть на клиента. если прошывка зашыта от 16Х2 то ето весело может брак а может и продавцы некачественые
    Решыли денег сделать на ньом

  13. #332
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Quasar Посмотреть сообщение
    3 строка это продолжение 1-ой, 4 - продолжение 3-ей, кол-во ячеек в 16x2 и 20x4 одно и тоже, то есть для МК всё равно какой дисплей подрублен 16x2 или 20x4. А то что там, загораются какие-то строки, так это может ЖК инициализацию нормально не проходит???
    Большое спасибо за конструктивный ответ! Но я уже разобрался - в 2 часа ночи победил этот ЖК дисплей полностью. Во-первых, приглядевшись в даташите на фотку ЖКИ понял, что я смотрю на него вверх ногами - перевернул и при подаче питания стали отображаться 1 и 3 строки ! Во-вторых, нашел ошибку в библиотеке ЖКИ - поменял порты и инициализация стала проходить нормально! В третьих, методом логического тыка подобрал адреса ячеек и понял, что 1-я это продолжение третьей, а 2-я - 4-й. Так что все работает, бегущая строка реализована.
    Теперь заморачиваюсь с АЦП. Как его включить на соответствующем входе понял и усе о нем понял. Но я хочу сделать опрос кнопок при помощи АЦП. Но как в WinAVR задается диапазон адресов не знаю!!??
    То есть надо получить следующее: если в регистрах АЦП такой-то адрес и он попадает в такой-то диапазон, то это кнопка (например) №1.
    Последний раз редактировалось Alex_Jet; 20.02.2007 в 11:51. Причина: Орфографические ошибки
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  14. #333
    Старый знакомый Аватар для Quasar
    Регистрация
    16.03.2005
    Адрес
    Russia, Moscow.
    Сообщений
    620

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

    Но как в WinAVR задается диапазон адресов не знаю!!??
    Чё то я не понял, диапазон адресов чего??? Вообще можно с помощью указателей...

  15. #334
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Quasar Посмотреть сообщение
    Чё то я не понял, диапазон адресов чего??? Вообще можно с помощью указателей...
    Да уже разобрался. Сделал по другому - для каждой кнопки задал значение и написал функцию проверки нажатия той или иной кнопки:
    #define delta 40 //Допустимый разброс U
    #define POWER 80 //При Vfer=2.56V U~0.08В
    unsigned long input; //Глобальная переменная

    unsigned char key_adc(unsigned char button)
    { if((input>(button-delta)) && (input<(button+delta))) return(0);
    return(1);
    }

    int main(void)
    {---------//Порты и тд
    input=ADCH; //Чтение числа при 8-битном АЦП

    ---------// и тд

    if((key_adc(POWER)) == 0)
    {выполнение действий}

    }
    Из-за глобальной переменной типа unsigned long код программы получился большим.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  16. #335
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    52
    Сообщений
    1,375

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

    Цитата Сообщение от Alex_Jet Посмотреть сообщение
    Да уже разобрался. Сделал по другому - для каждой кнопки задал значение и написал функцию проверки нажатия той или иной кнопки:

    Из-за глобальной переменной типа unsigned long код программы получился большим.
    Я только не понял, какой смысл использовать АЦП для опроса кнопок?
    Чем это лучше опроса входов?

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

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

    Цитата Сообщение от Nikkov Посмотреть сообщение
    Я только не понял, какой смысл использовать АЦП для опроса кнопок?
    Чем это лучше опроса входов?
    И мне стало интересно.

  18. #337
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    62
    Сообщений
    38,707

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

    АЦП для опроса кнопок используется со следующими целями:
    - уменьшить число проводов от кнпок к плате контроллера,
    - уменьшить число задействованных ножек контроллера (пины - самый ценный ресурс в МК!)
    - уменьшить помехи, присутствующие в схемах с динамическим сканированием кнопок.
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Да мне-то что, меняйтесь!"(с)анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  19. #338
    Частый гость Аватар для rodaf
    Регистрация
    24.11.2006
    Адрес
    г. Волгоград
    Сообщений
    252

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

    Цитата Сообщение от Alex Посмотреть сообщение
    АЦП для опроса кнопок используется со следующими целями:
    - уменьшить число проводов от кнпок к плате контроллера,
    - уменьшить число задействованных ножек контроллера (пины - самый ценный ресурс в МК!)
    - уменьшить помехи, присутствующие в схемах с динамическим сканированием кнопок.
    Отличный ответ!

  20. #339
    Частый гость Аватар для Alex_Jet
    Регистрация
    05.03.2004
    Адрес
    г.Томск
    Возраст
    39
    Сообщений
    391

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

    Цитата Сообщение от Nikkov Посмотреть сообщение
    Я только не понял, какой смысл использовать АЦП для опроса кнопок?
    Александр отлично ответил!!!

    А у меня накопились вот такие вопросы:
    1) Как реализовать режим POWER (St/By), который есть в большинстве современной бытовой техники. То есть после включения прибора в сеть, при первом нажатии на кнопку POWER происходит инициализация дисплея и выдается приветствие (типа Wellcom), а в это время читается EEPROM и вводятся последние запомненные значения для кадого из режимов (например, громкость, баланс, дешифратор входов переключается в соответствующее состояние, выдается лог.1 на транзистор управляющий каким-нибудь реле и тд). При втором нажатии на кнопку POWER на дисплее пишется прощание (например, Goodby), затем он выключается (очищается), а в это время МК переводит все свои порты в начальное состояние.
    Даже интересен не сам алгоритм, а синтаксис на С и желательно к WinAVR. Я так думаю надо это оформлять как switch(i) {case 0: ….; break; case 1: ….;}, но у меня так ничего и не получилось из этого – команда вообще не проходила!

    2) Как организовать управление режимом Mute? - при первом нажатии на кнопку выводится надпись “Mute” и появляется лог.1 на одном из портов для драйвера реле (ну или соответствующая запись в какую-нибудь TDA7313); при втором нажатии – индицируется обычное состояние устройства (например, №входа, громкость и тд) и возвращается лог.0 на порте.
    Case-ми тоже не получалось. Пробовал при каждом нажатии на кнопку изменять состояние на порте – PORTB ^=_BV(PB2); - но как в таком случае при первом нажатии выводить “Mute”, а при втором – начальные параметры?

    3) Как при выводе нового сообщения очищать экран (чтобы сообщения не накладывались друг на друга), но чтобы не приходилось инициализировать его снова?

    4) Также интересно как сделать блокировку всех кнопок, кнопкой POWER? То есть если аппарат в St/By, то он откликнется только на кнопку POWER или соответствующую кнопку на пульте ДУ.
    1. Pioneer PD-S703, E-MU1212M + Корвет-038 -> SSM2018T -> LM3886T, Class A JLH1969-> TQWP на BG20, Monitor Audio Bronze BX2
    2. ЦАП (PCM2706+CS4398) -> JLH Headphone Amplifiers -> Sennheiser HD595

  21. #340
    Старый знакомый Аватар для Quasar
    Регистрация
    16.03.2005
    Адрес
    Russia, Moscow.
    Сообщений
    620

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

    Alex_Jet
    Вообще, все эти вопросы имеют слишком много ответов, всё ведь от структуры программы зависит и от кривости мозгов, творящего (программера)

    Даже интересен не сам алгоритм, а синтаксис на С и желательно к WinAVR. Я так думаю надо это оформлять как switch(i) {case 0: ….; break; case 1: ….;}, но у меня так ничего и не получилось из этого – команда вообще не проходила!
    А в каком контексте ты её применял (я про switch) и что выдавал компилятор???

    3) Как при выводе нового сообщения очищать экран (чтобы сообщения не накладывались друг на друга), но чтобы не приходилось инициализировать его снова?
    Пошли на LCD команду 1 экран и очистится

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

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

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

Ваши права

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