3676|5

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430G2231产生PWM波 [复制链接]

如何用MSP430G2231产生150Kz的方波?求教各位大神,谢谢了

最新回复

//****************************************************************************** //  MSP430G2xx1 Demo - Timer_A, PWM TA1-2, Up Mode, DCO SMCLK // //  Description: This program generates one PWM output on P1.2 using //  Timer_A configured for up mode. The value in CCR0, 512-1, defines the PWM //  period and the value in CCR1 the PWM duty cycles. //  A 75% duty cycle on P1.2. //  ACLK = na, SMCLK = MCLK = TACLK = default DCO // //               MSP430G2xx1 //            ----------------- //        /|\|              XIN|- //         | |                 | //         --|RST          XOUT|- //           |                 | //           |         P1.2/TA1|--> CCR1 - 75% PWM // //  D. Dang //  Texas Instruments, Inc //  October 2010 //  Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10 //****************************************************************************** #include   void main(void) {   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT BCSCTL1 = CALBC1_16MHZ;                   // Set range   DCOCTL = CALDCO_16MHZ;                    // Set DCO step + modulation*/   P1DIR |= 0x0C;                            // P1.2 and P1.3 output   P1SEL |= 0x0C;                            // P1.2 and P1.3 TA1/2 options   CCR0 = 106;                             // PWM Period   CCTL1 = OUTMOD_7;                         // CCR1 reset/set   CCR1 = 53;                               // CCR1 PWM duty cycle   TACTL = TASSEL_2 + MC_1;                  // SMCLK, up mode   _BIS_SR(CPUOFF);                          // Enter LPM0 }  详情 回复 发表于 2012-7-20 04:12

点评

//****************************************************************************** // MSP430G2xx1 Demo - Timer_A, PWM TA1-2, Up Mode, DCO SMCLK // // Description: This program generates one PWM ou  详情 回复 发表于 2012-7-20 04:12
 
点赞 关注

回复
举报

437

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
不知道怎么插入代码,直接贴上来了~
这是之前写的一个,两路PWM,一路5.6k,一路150k~ 
你可以试试看~


#include  <msp430g2553.h>
void main(void)
{
  
WDTCTL = WDTPW + WDTHOLD;                  // Stop WDT
  
    BCSCTL2 = SELM_0 + DIVM_0 + DIVS_1; //2

    if (CALBC1_16MHZ != 0xFF) 
    {
        DCOCTL = 0x00;
        BCSCTL1 = CALBC1_16MHZ;      /* Set DCO to 16MHz */
        DCOCTL = CALDCO_16MHZ;
    }
    BCSCTL1 |= XT2OFF + DIVA_0;
    BCSCTL3 = XT2S_0 + LFXT1S_2 + XCAP_1;
    
  P2SEL |= BIT0+BIT1;                        // P2.0 - P2.1 option select
  P2DIR |= BIT0+BIT1;                        // PP.0 - P2.1 outputs
  TA1CCTL0 = OUTMOD_4+ CCIE;                // TA1CCR0 toggle, interrupt enabled
  TA1CCTL1 = OUTMOD_4+ CCIE;              // TA1CCR1 toggle, interrupt enabled

  TA1CTL = TASSEL_2 +  MC_2;          // SMCLK, Contmode, int enabled
  
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A0 (void)
{
  TA1CCR0 += 664;                              // Add Offset to CCR0 1.4k*4
}

// TimerA1 Interrupt Vector (TA1IV) handler
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer_A1(void)
{
  switch( TA1IV )
  {
  case  2: TA1CCR1 += 27;                    // Add Offset to CCR1   150k
           break;
 }
}
 
个人签名
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
拷来试试,正找这东西呢
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

4
 
拷来试试
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

5
 
请问楼主我出来的频率是5.9K和146.5K是什么原因呢????
 
 
 

回复

188

帖子

0

TA的资源

纯净的硅(中级)

6
 

回复 楼主 DLY1104 的帖子

//******************************************************************************
//  MSP430G2xx1 Demo - Timer_A, PWM TA1-2, Up Mode, DCO SMCLK
//
//  Description: This program generates one PWM output on P1.2 using
//  Timer_A configured for up mode. The value in CCR0, 512-1, defines the PWM
//  period and the value in CCR1 the PWM duty cycles.
//  A 75% duty cycle on P1.2.
//  ACLK = na, SMCLK = MCLK = TACLK = default DCO
//
//               MSP430G2xx1
//            -----------------
//        /|\|              XIN|-
//         | |                 |
//         --|RST          XOUT|-
//           |                 |
//           |         P1.2/TA1|--> CCR1 - 75% PWM
//
//  D. Dang
//  Texas Instruments, Inc
//  October 2010
//  Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************

#include  

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

BCSCTL1 = CALBC1_16MHZ;                   // Set range
  DCOCTL = CALDCO_16MHZ;                    // Set DCO step + modulation*/

  P1DIR |= 0x0C;                            // P1.2 and P1.3 output
  P1SEL |= 0x0C;                            // P1.2 and P1.3 TA1/2 options
  CCR0 = 106;                             // PWM Period
  CCTL1 = OUTMOD_7;                         // CCR1 reset/set
  CCR1 = 53;                               // CCR1 PWM duty cycle
  TACTL = TASSEL_2 + MC_1;                  // SMCLK, up mode

  _BIS_SR(CPUOFF);                          // Enter LPM0
}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表