关于MSP430G2553的DCO频率的精度问题

2019-03-24 13:28发布

求高手解释一下。我现在要做一个测高频的频率计,需要用到1ms的延时,测这1ms的脉冲个数,但是计出的结果有很大误差,我怀疑是内部的DCO晶振不准
  是不是launchpad不能外接晶振?怎么计到比较准的频率?我用得是DCO  8MHz频率,我的延时程序如下:
#define CPU_F                               ((double)8000000)
#define delay_us(x)                       __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x)                       __delay_cycles((long)(CPU_F*(double)x/1000.0)) 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
10192201
1楼-- · 2019-03-24 20:30
我今天刚学launchpad,也觉得内部晶振不是很准的,
zenghao616
2楼-- · 2019-03-25 00:59
 精彩回答 2  元偷偷看……
qxdzhidao
3楼-- · 2019-03-25 05:35
一粒金砂  你太NB了 好贴
1032415214
4楼-- · 2019-03-25 11:07
有谁会设置launchpad的方波输出啊,500hz的
myzone
5楼-- · 2019-03-25 12:13
 精彩回答 2  元偷偷看……
ccstc
6楼-- · 2019-03-25 16:45
  1. #include  

  2. void main(void)
  3. {
  4.   WDTCTL = WDTPW +WDTHOLD;                  // Stop Watchdog Timer
  5.   if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)                                    
  6.   {  
  7.     while(1);                               // If calibration constants erased
  8.                                             // do not load, trap CPU!!
  9.   }
  10. //1Mhz
  11.   BCSCTL1 = CALBC1_1MHZ;                    // Set range
  12.   DCOCTL = CALDCO_1MHZ;                     // Set DCO step + modulation */

  13. /* //8Mhz
  14.   BCSCTL1 = CALBC1_8MHZ;                    // Set range
  15.   DCOCTL = CALDCO_8MHZ;                     // Set DCO step + modulation */

  16. /* //12Mhz
  17.   BCSCTL1 = CALBC1_12MHZ;                   // Set range
  18.   DCOCTL = CALDCO_12MHZ;                    // Set DCO step + modulation*/

  19. /* //16Mhz
  20.   BCSCTL1 = CALBC1_16MHZ;                   // Set range
  21.   DCOCTL = CALDCO_16MHZ;                    // Set DCO step + modulation*/

  22.   P1DIR |= 0x13;                            // P1.0,1 and P1.4 outputs
  23.   P1SEL |= 0x11;                            // P1.0,4 ACLK, SMCLK output

  24.   while(1)
  25.   {
  26.     P1OUT |= 0x02;                                // P1.1 = 1
  27.     P1OUT &= ~0x02;                         // P1.1 = 0
  28.   }
  29. }
复制代码我试下来,8M的更准一些
6楼的应该没有包含头文件所以出错了
其实这些东西在TI产品页面的Code Example里面都有的

一周热门 更多>

相关问题

    相关文章