打印

时钟输出

[复制链接]
943|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
supernan|  楼主 | 2014-5-5 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么这里的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
     /**/
   }
}

相关帖子

沙发
supernan|  楼主 | 2014-5-5 21:10 | 只看该作者
DOC可以用来校准时钟信号的,低功耗的时钟更加精确!

使用特权

评论回复
板凳
zwll| | 2014-5-5 21:12 | 只看该作者
楼主可以看看汇编指令,楼主这样GPIO翻转加上循环的跳转的C程序编译成汇编后指令数差不多会有10条,代码的速度和指令条数是直接相关的

使用特权

评论回复
地板
supernan|  楼主 | 2014-5-5 21:12 | 只看该作者
本帖最后由 supernan 于 2014-5-5 21:14 编辑

这有可能跟编译器有关,如果用IAR会不会就不是MCLK/10?
汇编后的指令的确是10条

使用特权

评论回复
5
chuxh| | 2014-5-5 21:14 | 只看该作者
楼主如果只是想要MCLK同频率的时钟,可以试着将CLK直接从引脚送出来进行观察

使用特权

评论回复
6
juventus9554| | 2014-5-5 21:14 | 只看该作者
你这个是p1.1的输出语句,看while(1)下面的汇编指令应该有10条,所以frequecny=mclk/10

使用特权

评论回复
7
supernan|  楼主 | 2014-5-5 21:16 | 只看该作者
是不是不同的编译器编译出来的指令数量会不同,如果是IAR或是gcc?

使用特权

评论回复
8
司徒老鹰| | 2014-5-5 21:16 | 只看该作者
不晓得哦

使用特权

评论回复
9
supernan|  楼主 | 2014-5-5 21:23 | 只看该作者
算了,结贴了

使用特权

评论回复
10
supernan|  楼主 | 2014-5-5 21:23 | 只看该作者
多谢大家啊,晚安

使用特权

评论回复
11
yilfhch| | 2014-7-25 22:31 | 只看该作者
这个我也遇到这个问题,明明设置的是1MHZ的,要求输出的是1us,但实际出来的是0.1us,就是频率感觉是10MHZ了,楼上的那些都搞错了,他们以为是1/10的MCLK

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝