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

 
 
 
Reply to this topicStart new topic
> 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
KARLSON
сообщение Mar 19 2012, 06:15
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Какой хоть контроллер. У каждого свои функции.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Mar 19 2012, 06:26
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(jjjjjjein @ Mar 15 2012, 09:44) *
На третей ножке порта1 нужно создать ШИМ с регулируемой скважностью. Cкважность меняется при изменении параметра Peremennaya. Как скважность ШИМа- CCR1 связать с портом 1? В коде это место отмечено вопросами.

Третью ножку с CCR1 - никак, только с CCR2.
А связать очень просто.
TACCTL2 = OUTMODE_X,
где X - выбранный режим выхода. Для ШИМ это обычно или установка-сброс, либо сброс-установка


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 19:48
Рейтинг@Mail.ru


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