реклама на сайте
подробности

 
 
> MSP430 ШИМ, MSP430 вывести ШИМ на ножку
jjjjjjein
сообщение Mar 15 2012, 05:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 31-10-11
Пользователь №: 68 059



На третей ножке порта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 вывод порта настроен как выход
            
     }
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016