时钟输出

2019-08-03 18:47发布

为什么这里的P1.1时钟输出是MCLK/10?经过实际示波器测得也是10个MCLK。
#include  <msp430g2231.h>

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

  BCSCTL1 = CALBC1_1MHZ;                    // Set range
   DCOCTL = CALDCO_1MHZ;
   //BCSCTL3 |= XCAP1;
   P1DIR |= 0x13;                            // P1.0,1 and P1.4 outputs
   P1SEL |= 0x11;                            // P1.0,4 ACLK, SMCLK output

  while(1)
   {
     P1OUT |= 0x02;   
                    // P1.1 = 1
     P1OUT &= ~0x02;                         // P1.1 = 0
     /**/
   }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
supernan
1楼-- · 2019-08-03 22:28
DOC可以用来校准时钟信号的,低功耗的时钟更加精确!
zwll
2楼-- · 2019-08-03 22:52
楼主可以看看汇编指令,楼主这样GPIO翻转加上循环的跳转的C程序编译成汇编后指令数差不多会有10条,代码的速度和指令条数是直接相关的
supernan
3楼-- · 2019-08-04 00:19
 精彩回答 2  元偷偷看……
chuxh
4楼-- · 2019-08-04 03:16
楼主如果只是想要MCLK同频率的时钟,可以试着将CLK直接从引脚送出来进行观察
juventus9554
5楼-- · 2019-08-04 04:34
你这个是p1.1的输出语句,看while(1)下面的汇编指令应该有10条,所以frequecny=mclk/10
supernan
6楼-- · 2019-08-04 06:51
是不是不同的编译器编译出来的指令数量会不同,如果是IAR或是gcc?

一周热门 更多>