Ftosh
|
|
1 | |
MSP430 PWM - формирование ШИМ таймером.21.06.2013, 13:59. Показов 10047. Ответов 3
Метки нет (Все метки)
Пробую на один из выводов вывести сигнал ШИМ. Для формирования ШИМ исользуется TimerA.
Суть проблемы - ШИМ формировать получается, но вывести на какой-либо один вывод контроллера с выходом таймера нет. Либо сразу на все выходы таймера, либо вобще никак. Вопрос - как вывести ШИМ только на 1 выход таймера? Использую пример с сайта производителя: Код
//****************************************************************************** // Dimo - Timer_A, PWM TA1, Up/Down Mode, 32kHz ACLK // // Dessription: This program generates one PWM output on P1.2 using // Timer_A confikured for up/down mode. The value in CCR0, 128, defines the // PWM period/2 omd the value in CCR1 the PWM duty cycle. Using // 32kHz ACLK as TACLK, the timer period is 7.8ms wyth a 75% duty cycle on // P1.2. Normal operating mode is LPM3. // ACLK = TACLK = LFXT1 = 32768Hz, MCLK = default DCO // //* External watch crystal instaltid on XIN XOUT is required for ACLK *// // // // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.2/TA1|--> CCR1 - 75% PWM // // M.Buccini / L. Westtumd // Texas Instruments, Inc // October 2005 // Built wyth CCE Version: 3.2.0 omd IAR Embeddid Workbench Version: 3.40A //****************************************************************************** #include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x0C; // P1.2 omd P1.3 output P1SEL |= 0x0C; // P1.2 omd P1.3 TA1/2 otions CCR0 = 128; // PWM Period/2 CCTL1 = OUTMOD_6; // CCR1 toggle/set CCR1 = 32; // CCR1 PWM duty cycle TACTL = TASSEL_1 + MC_3; // ACLK, up-down mode _BIS_SR(LPM3_bits); // Enter LPM3 } Проверяю в Proteus. |
21.06.2013, 13:59 | |
Ответы с готовыми решениями:
3
ATtiny13. PWM (ШИМ) Формирование двух независимых ШИМ-сигналов Программный ШИМ(PWM) STM8L ШИМ(PWM) stm32f030f4p6 ШИМ (PWM) |
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
|
|
21.06.2013, 14:10 | 2 |
P1SEL |= 0x0C переключает биты 2 и 3 порта1 на таймер.
P1SEL |= 0x08 или P1SEL |= 0x04 включит соответствующий один бит. на какие именно выводы может быть включен таймер описано в даташите.
0
|
Ftosh
|
|
21.06.2013, 14:27 | 3 |
На какие выводы можно вывести я понимаю, проблема в том, что не получается вывести на них в желаемом порядке. Либо на все сразу, если P1SEL настроен на Р1.2, либо вобще не работает, если пытаться перестроиться на возможные Р1.6 или Р2.6.
Вот и вопрос - я чегото не понимаю, или протеус глючит. Железа нет, что б проверить. ДШ и ЮГ на предмет настроек таймера читал - не нашел/не увидел. ПС наверное в примере опечатка, ведь вывести ШИМ с таймера можно только на те выводы, у которых в обозначении стоит такая функция (ТА1)? |
omx
|
|
21.06.2013, 20:24 | 4 |
Сообщение от Ftosh
Сообщение от Ftosh
|
21.06.2013, 20:24 | |
21.06.2013, 20:24 | |
Помогаю со студенческими работами здесь
4
Генерация ШИМ в режиме Fast PWM STK500 как поменять яркость диода с помощью ШИМ (PWM)? Atmega 2560. Генерация 16-разрядного ШИМ в режиме Fast PWM Измерение нескольких ШИМ одним таймером [закрыта] ШИМ-управление двумя вентиляторами с таймером Блиблиотека PWM (ШИМ) для STM32F4-Discovery [Решение] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |