Перейти к содержанию
    

MSP430 ШИМ

На третей ножке порта1 нужно создать ШИМ с регулируемой скважностью. Cкважность меняется при изменении параметра Peremennaya. Как скважность ШИМа- CCR1 связать с портом 1? В коде это место отмечено вопросами.

int main( void )
  {
    WDTCTL = WDTPW + WDTHOLD;                                                   // Stop watchdog timer to prevent time out reset
    _DINT();                                                                    // Запрещаем прерывания
    InitializationPortIO ();                                                    // Вызов функции инициализации портов ввода/вывода микроконтроллера 
    InitializationTimersMSP430 ();                                              // Вызов функции инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135 
    InitializationUSART ();                                                     // Вызов функции инициализации модуля USART
    InitializationADC ();                                                       // Вызов Функции инициализации модуля АЦП микроконтроллера
    _EINT();                                                                    // Разрещаем прерывания
  
              
   while (1)
     {    
                                                                          
       if (Flag_1s == true)                                                     // Если флаг 1 секунды поставлен
         
           P1.......;                                                      // ???????????????
              Flag_1s = false;
          }

       }  
//    return 0;
  }
  
//********************************************************************************
*********************************************************************************
******************************
//*************************************************************     ОПИСАНИЯ ФУНКЦИЙ     ********************************************************************************
************************
void InitializationTimersMSP430 (void)   // Функция инициализации внутренних аппаратных таймеров микроконтроллера MSP430F135
     {
       // Общая инициализвция модуля тактирования микроконтроллера 
       BCSCTL1 = 0x00;                                                          // Обнуление управляющего регистра BCSCTL1 
       BCSCTL2 = 0x00;                                                          // Обнуление управляющего регистра BCSCTL2
       BCSCTL1 = RSEL0 | RSEL1 | RSEL2;                                         // Сопротивление внутреннего резистора -> МАКСИМУМ     
       BCSCTL2 = SELM_2 |                                                       // Источник тактирования MCLK -> XT2CLK
                 DIVM_0 |                                                       // Делитель MCLK -> 1
                 SELS   |                                                       // Источник тактирования SMCLK -> XT2CLK
                 DIVS_0;                                                       // Делитель SMCLK -> 1  
       DCOCTL = DCO0 | DCO1 | DCO2 |                                            // Частота генератора -> МАКСИМУМ (8000000 Гц)
                MOD0 | MOD1 | MOD2 | MOD3 | MOD4;                               // Модулятор тактовой частоты DCO -> МАКСИМУМ
       LPM4;                                                                    // Генераторы DCO и LFXT1 отключены
       
       // Инициализация Flash-памяти
       FCTL2 = 0xA553;                                                          // Предделитель частоты тактирования -> 20 (400000 Гц)
       
       // Инициализация таймера А
       TACTL = TASSEL_2 |                                                       // Источник тактирования таймера -> сигнал SMCLK
               MC_1 |                                                           // Режим работы таймера -> счёт вверх до значения TACCR0
               ID_3;                                                            // Предделитель таймера -> 8  
       TACCR0 = 50000;                                                          // Счёт до значения -> 40000
       TACCTL0 = CCIE;                                                          // Разрешение прерывания по захвату/сравнению
       CCR1 = CCR0 * Peremennaya;                                     // Скважность ШИМа
       TACCTL1 = OUTMOD_7;                                                      // Конфигурация выхода, режим сброс/установка
     }
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void InitializationPortIO (void)   // Функция инициализации портов ввода вывода микроконтроллера 
     {                                                             
       
       // Инициализация порта ввода/вывода №1
       P1SEL = 0x06;                                                            // 3 вывод порта настроен как функция периферийного модуля 
       P1OUT = 0x00;                                                            // На всех выводах порта установлены логические "0"
       P1DIR = 0x06;                                                            // 3 вывод порта настроен как выход
             
     }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На третей ножке порта1 нужно создать ШИМ с регулируемой скважностью. Cкважность меняется при изменении параметра Peremennaya. Как скважность ШИМа- CCR1 связать с портом 1? В коде это место отмечено вопросами.

Третью ножку с CCR1 - никак, только с CCR2.

А связать очень просто.

TACCTL2 = OUTMODE_X,

где X - выбранный режим выхода. Для ШИМ это обычно или установка-сброс, либо сброс-установка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...