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-25 03:10
wangfuchong 发表于 2014-6-2 21:47
G2系列指导手册呀,TI官网的呀,定时器章节的介绍部分就有

还是没弄好。。
  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;                // ta0.0   ta0.1
  8.   CCR0 = 100-1;

  9.   CCTL1 = OUTMOD_4;
  10.   CCR1 = 30;
  11.   TACTL = TASSEL_2 + MC_1;              //  SMCLK + UP MODE
  12.   _BIS_SR(CPUOFF);
  13.   return 0;
  14. }
复制代码是这样写吗?输出的是 1000 000 / 2*100 = 5000 hz的方波,与ccr1的值无关啊,是不是p11和p12输出的波就应该是一样的呢?

一周热门 更多>

相关问题

    相关文章