xiangjing 发表于 2012-5-23 11:30:54

430G系列使用内部DCO校准1M,实测怎么只有250K??

本帖最后由 xiangjing 于 2012-5-23 16:44 编辑

使用到内部DOC,用手册上校准1M,但实测IO口输出只有250K,不知道是没校准对,还是程序分频没处理好,请大家帮忙看看!!!


   #include"io430g2231.h"

    void main( void )
   {
      // Stop watchdog timer to prevent time out reset
   WDTCTL = WDTPW + WDTHOLD;

    DCOCTL = CALDCO_1MHZ;         //读出的值 0xc4
    BCSCTL1 = CALBC1_1MHZ;      //读出的值 0x86
    BCSCTL2= 0;
    P1DIR =   0x44;

    while(1)
   {
   P1OUT = 0x44;             //实测只有250K
   P1OUT = 0x00;      
   }
}

//找到原因了,430的指令很多是3-5个时钟周期; 受不了,以前一直以为它是单时钟周期。

STM32shipeng 发表于 2012-7-28 20:45:57

我的就是1M啊

黄花鱼 发表于 2012-7-28 22:51:43

是1M,直接设置相应的时钟脚为第二功能,再设置为输出,打在示波器上就是1M;
而从IO口输出的话,因为指令执行需要时间,就像你所说的,就不在是1M了~
页: [1]
查看完整版本: 430G系列使用内部DCO校准1M,实测怎么只有250K??