社区导航

 

搜索
查看: 1367|回复: 6

[求助] msp430g2553捕获频率的范围

[复制链接]

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-4-24 12:06 | 显示全部楼层 |阅读模式
额...又来麻烦大家了。前段时间写了个测量方波频率的代码。昨天取实验室用函数发生器试了一下,能测得的频率范围大概为122hz到110khz。122hz好说,和计算出来可测得最低频率的结果一致。(f=1/(1/8000000*65536)),但是这个最高频率怎么才110khz啊???(频率大于110k测出的数据就只有6,7万,这明显没对)我用的可是8m的时钟源。
现在我能想的就是分频了。我记得430只能对主时钟进行分频,不知道可不可以对外来的信号就行分频,如果不行,我设想用74hc4040或者cd4518(刚刚才买的哈哈哈哈)。还忘大家给下建议。谢谢大家啊!

#include e
int j=0,i,l;
long int k,f,new_cap=0,old_cap=0,cap_diff=0;
int main(void)

{
WDTCTL = WDTPW + WDTHOLD;
P1OUT=0;
if (CALBC1_8MHZ==0xFF) // If calibration constant erased
{
while(1); // do not load, trap CPU!!
}
DCOCTL = 0; // Select lowest DCOx and MODx settings
BCSCTL1 = CALBC1_8MHZ; // Set DCO to 8MHz
DCOCTL = CALDCO_8MHZ;
for(i=0;i<20000;i++);//等晶振稳定震荡
P1DIR=0x10;//P1.4输出SMCLK
P1SEL=0X12;//P1.4输出SMCLK信号,为第二功能。P1.1引脚作输入接受捕获信号,为第二功能。
P2DIR |= BIT1;
P2SEL |= BIT1;
TA1CCR0 = 82-1; // Period Register
TA1CCR1 = 21; // TA1.1 25% dutycycle
TA1CCTL1 |= OUTMOD_7; // TA1CCR1, Reset/Set
TA1CTL = TASSEL_1 + MC_1 + TACLR;
CCTL0=CM_1+CCIS_0+SCS+CAP+CCIE;//上升沿捕获+P1.1捕捉CCI0A 输入+同步+捕获模式+开始中断
TACTL=TASSEL_2+MC_2;//SMCLK时钟+连续模式
_BIS_SR(LPM0_bits+GIE);

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
P1OUT^=0x40;//led翻转
j++;
if(j%2>=1)
old_cap=TACCR0;//第一次捕获上升沿时,定时器的值
if(j%2==0)
{
new_cap=TACCR0;//第二次捕获上升沿时,定时器的值
if(new_cap cap_diff=65536+new_cap-old_cap;//两次相减得到一个周期内定时器的计数
else
cap_diff=new_cap-old_cap;//两次相减得到一个周期内定时器的计数

f=8000000/cap_diff*0.99;//根据测试结果430g2553得到的信号比实际信号差不多大0.01
__bic_SR_register_on_exit(LPM0_bits + GIE);
}
}

回复

使用道具 举报

14

TA的帖子

0

TA的资源

宇宙尘埃

发表于 2018-4-24 13:40 | 显示全部楼层
受教了   

回复

使用道具 举报

5674

TA的帖子

453

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2018-4-24 13:50 | 显示全部楼层
你这样先分频再测试也方便

高频通过外部中断记1秒内数量也可以!

点评

如何精确定时1s  详情 回复 发表于 2018-4-26 23:28
但是这个8m的时钟源为什么连个200khz都测不准??不是很懂啊  详情 回复 发表于 2018-4-24 16:23

回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-4-24 16:23 | 显示全部楼层
蓝雨夜 发表于 2018-4-24 13:50
你这样先分频再测试也方便

高频通过外部中断记1秒内数量也可以!

但是这个8m的时钟源为什么连个200khz都测不准??不是很懂啊

回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-4-25 09:53 | 显示全部楼层
额....

回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-4-26 23:14 | 显示全部楼层
有没有用430做过频率计的朋友给点意见呗

回复

使用道具 举报

20

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-4-26 23:28 | 显示全部楼层
蓝雨夜 发表于 2018-4-24 13:50
你这样先分频再测试也方便

高频通过外部中断记1秒内数量也可以!

如何精确定时1s

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /5 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-17 06:41 , Processed in 0.223720 second(s), 21 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表