4512|5

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

测量低频时的奇怪问题 [复制链接]

使用TA的捕获口测频率,输入频率范围从0-5KHz左右,采样一直很稳定,直到约50Hz以下,数据异常。
在试验程序中只做捕获一个工作,在捕获口中加入标志位,发现1S内捕获中断次数异常,从几百到上千吧,输入频率恢复到50Hz以上,数据恢复正常。
用示波器看输入频率波形良好,不知道是哪里的问题?

最新回复

又作了一下测试,输入信号10Hz,当捕获选择上升沿时,每秒捕获中断200-300次,改成捕获条边沿后,每秒捕获中断300-400次,有所变化,还是不明白为什么。  详情 回复 发表于 2005-8-19 16:41
 
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看得不是很清楚,最好有源代码
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该是计时器部分溢出
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用:

使用TA的捕获口测频率,输入频率范围从0-5KHz左右,采样一直很稳定,直到约50Hz以下,数据异常。
在试验程序中只做捕获一个工作,在捕获口中加入标志位,发现1S内捕获中断次数异常,从几百到上千吧,输入频率恢复到50Hz以上,数据恢复正常。
用示波器看输入频率波形良好,不知道是哪里的问题?
可能是TA的时钟源太快了吧,以致在进行扑获低频时溢出了,查询一下溢出标志位。
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

5
 
TA的时钟源是8M晶振,在TA的中断里有对中断溢出的记数程序,溢出不应该影响捕获的中断
以下是试验程序,TB是一秒定时,输入频率10Hz,每秒捕获记数TIMERCNT3有几百次

void main(void) //组程序开始
{
init(); //调用初始化子程序
TBCCTL2|=CCIE;
interval =1;
CCTL0|= CCIE+CAP+SCS+CM0;
TACTL|= MC1;
_EINT();
while(1)
{
_BIS_SR(CPUOFF);
_NOP();
}
}

interrupt[TIMERB1_VECTOR] void TIMER_B1(void)
{
switch(TBIV)
{
case 4:

TBCCR2 += 32768;
_NOP();
break;
default: break;
}
}
interrupt[TIMERA1_VECTOR] void TIMER_A1(void)
{
switch(TAIV)
{
case 10 :
OVERFLOWCNT++;
break;
default: break;
}
}
interrupt[TIMERA0_VECTOR] void TIMER_A(void)
{ TIMERCNT3++;

_NOP();
}
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

6
 
又作了一下测试,输入信号10Hz,当捕获选择上升沿时,每秒捕获中断200-300次,改成捕获条边沿后,每秒捕获中断300-400次,有所变化,还是不明白为什么。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表