На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > формирование 3 импульсных сигналов, msp430 , программирование на с
      собственно задание вроде нетрудное, но навыков нет, поэтому ступор.
      сформировать 3 импульсных сигнала с изменяющейся частотой, смещенных по фазе относительно друг друга(диапазон частот 1кгц-3кгц длит импульса = 1/3 периода, фазовый сдвиг = длит импульса )
      в результате должно быть что то вроде трехступенчатой лесенки(рисунок не прикрепляется). помогите кто чем может. да, язык си, микроконтроллер msp430
        Цитата andr92 @
        собственно задание вроде нетрудное, но навыков нет, поэтому ступор.
        сформировать 3 импульсных сигнала с изменяющейся частотой, смещенных по фазе относительно друг друга(диапазон частот 1кгц-3кгц длит импульса = 1/3 периода, фазовый сдвиг = длит импульса )
        в результате должно быть что то вроде трехступенчатой лесенки(рисунок не прикрепляется). помогите кто чем может. да, язык си, микроконтроллер msp430

        Есть неплохой сайт http://www.shelezyakin.ru/ с уроками по MSP430, почитай.
          Какая модель по-точнее?
          Подозреваю что таймер есть. Тогда делать через прерывание. настраиваем таймер на нужную частоту.
          Могу подсказать "на глаз". Внимание - код ниже написан по памяти для компилятора CCS C. Автор не несет ответственности за изложенное ниже :D

          Если компилятор позволяет выводить сигнал на каждую ногу по отдельности, можно сделать вот так:
          ExpandedWrap disabled
            {
              // Обработчик прерывания таймера
              static byte counter;
              switch(counter) {
                case 0:
                  output_high(PIN_A0); // включаем первую
                  output_low(PIN_A2); // гасим предудыщую
                  break;
                case 1:
                  output_high(PIN_A1); // включаем вторую
                  output_low(PIN_A0); // гасим предудыщую
                  break;
                case 2:
                  output_high(PIN_A2); // включаем третью
                  output_low(PIN_A1); // гасим предудыщую
                  break;
              }
              
              if(counter=2) counter=0; else counter++;
            }


          Если компилятор допускает только выводить по-байтово на весь порт, то надо так:
          ExpandedWrap disabled
            {
              // Обработчик прерывания таймера
              static byte value, value2;
              value = input_A();
              
              value2 = value && 0x11111000;
              if(value && 0x00000100) value = 0x1; else value <<= 1; // то же, что и value = value << 1;
              value = value || value2;
              
              output_A(value);
            }
            Видимо нужно или можно сделать двухбитный R-2R ЦАП (ступеньки же), и по таймеру выводить эти два бита.

            отсутствие постановки вопроса удивляет вообще
              Цитата MeG @
              Видимо нужно или можно сделать двухбитный R-2R ЦАП

              Думаю, можно ШИМом : сначала шим 25%(к примеру), затем 50% и, далее 75%. Каждый длиной в ступеньку.
                Есть msp430 и с аппаратными DAC-ами вообще без внешних детальек получается.
                  Цитата MeG @
                  без внешних детальек получается

                  Так и тут, при достаточно высокой шим и большой емкости монтажа. :D
                    Ну какой он там высокочастотный, восьмибитный шим при тактовой частоте 20 МГц, получается частота шима чуть ниже 80 кГц. Более 100 пФ на ножку вряд ли удастся насобирать емкости монтажа, всяко интегрировать нужно. Хотя от задачи, конечно, зависит.
                      Я так понял автору нужно такая форма:
                      Прикреплённая картинка
                      Прикреплённая картинка

                      Хотя хорошо было бы если б он сам обьяснил.
                        одноразовый автор какой-то...
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0274 ]   [ 17 queries used ]   [ Generated: 25.04.24, 11:52 GMT ]