P12 可以这样输出方波吗?

2019-03-24 11:27发布

// 同时输出两个方波
  1. #include <msp430g2553.h>

  2. int main( void )
  3. {
  4.   // Stop watchdog timer to prevent time out reset
  5.   WDTCTL = WDTPW + WDTHOLD;
  6.   P1DIR |= BIT1 + BIT2;                 //  p1.1  p1.2
  7.   P1SEL |= BIT1 + BIT2;
  8.   //P2DIR |= BIT0;
  9. // P2SEL |= BIT0;
  10.   CCTL0 = OUTMOD_4;
  11. // CCTL1 = OUTMOD_4;                      //  toggle
  12.   CCR0 = 50-1;
  13. // CCR1 = 10-1;
  14.   TACTL = TASSEL_2 + MC_1;              //  SMCLK + UP MODE
  15.   _BIS_SR(CPUOFF);
  16.   return 0;
  17. }
复制代码
通过示波器,看到p1.1输出了10 000hz方波,看到p1.2后面写着TA0.1,原以为也能这样输出一个方波,却没有实现。后来这样实现了。
/ 实验目的:输出频率为10、50kHz的方波
/*
    f = 10^4hz  T = 10^(-4)s= 100 / 1000 000
*/
  1. #include <msp430g2553.h>

  2. int main( void )
  3. {
  4.   // Stop watchdog timer to prevent time out reset
  5.   WDTCTL = WDTPW + WDTHOLD;
  6.   P1DIR |= BIT2;
  7.   P1SEL |= BIT2;
  8.   CCR0 = 20-1;                        // 100 / 20
  9.   CCTL1 = OUTMOD_7;                    //  CCR1  RESET/SET
  10.   CCR1 = 10;                            //  50 /  10
  11.   TACTL = TASSEL_2 + MC_1;              //  smclk + up
  12.   _BIS_SR(CPUOFF);
  13.   return 0;
  14. }
复制代码
可是第一种办法为什么不行呢?TA0.1又代表什么呢? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
hahadiy
2019-03-24 18:46
< :TI_MSP430_内容页_SA7 --> 本帖最后由 hahadiy 于 2014-6-1 16:29 编辑
wangfuchong 发表于 2014-5-31 19:50
TA0.1对应着TACCR1的输出,第一种方法没有设定CCTL1和CCR1

您好,我改了改
  1. //  f= 1000 000 / 20 = 50000 hz t = 20us
  2. #include <msp430g2553.h>

  3. int main( void )
  4. {
  5.   // Stop watchdog timer to prevent time out reset
  6.   WDTCTL = WDTPW + WDTHOLD;
  7.   P1DIR |=BIT2;                 //  p1.1  p1.2
  8.   P1SEL |=BIT2;
  9. //CCTL0 = OUTMOD_4;                      //  toggle
  10.   //CCR0 = 10-1;
  11.   
  12.   CCTL1 = OUTMOD_4;
  13.   CCR1 = 10-1;
  14.   TACTL = TASSEL_2 + MC_1;              //  SMCLK + UP MODE
  15.   _BIS_SR(CPUOFF);
  16.   return 0;
  17. }
复制代码这样写 p12还是无法输出的。我再看看官方例程吧

一周热门 更多>

相关问题

    相关文章