完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用F149做过,感觉比较容易,你可以看看你那块板子给的例程,然后找个网上的测频原理看看,稍改一下就行了
|
|
|
|
1hz时误差1%太困难,
|
|
|
|
数字测频率有两种方法:
1.在一个固定时间内对输入的信号进行计数然后用计数的值换算成频率,固定的时间越长精度越高,而固定的时间一定时频率越高精度越高,所以适用于高频测量。 2.用待测信号的一个脉宽为基准时间来控制一个固定的高频参考信号计数,通过高频信号的计数值换算成待测信号的频率,这样的方法适用与低频,参考信号频率越高精度越高,待测频率越低精度越高,不过这种方法用单片机我没试过。 我以前做过2015年全国大学生电子竞赛f题数字频率计,我们用的这两个方法,你可以参考一下 |
|
|
|
呃呃呃..................
|
|
|
|
你好,我写了一个捕获频率的程序,但是好像精度不够不知道为什么,可以帮我看看吗? ulint captar=0,capfirst,caplast,time=0,pulse=0,f; void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 lcdinit(); P2DIR &=~BIT0; P2SEL |=BIT0; TA1CCTL1=CM_1+SCS+CCIS_0+CAP+CCIE; TA1CTL=TASSEL_1+MC_2+TACLR+TAIE; _EINT(); while(1){ f=pulse*32768/time; display(f); TA1CCTL1 |= CCIE; TA1CTL |= TAIE; } } #pragma vector = TIMER0_A1_VECTOR __interrupt void TIMER0_A1 (void) { switch(TA1IV){ case 2:{ if(captar==0) { capfirst=TA1CCR1; captar++; } else{ caplast=TA1CCR1; captar++; } TA1CCTL1 &=~CCIFG; break; } case 14:{ if(captar==0) pulse=0; else{ pulse=captar-1; time=caplast-capfirst; captar=0; } TA1CCTL1&=~CCIE; TA1CTL=~TAIE; break; } default:break; } } |
|
|
|
只有小组成员才能发言,加入小组>>
3057个成员聚集在这个小组
加入小组2989 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3717 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2367 浏览 1 评论
4835 浏览 1 评论
2596 浏览 1 评论
1636浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3718浏览 2评论
2989浏览 1评论
1828浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 11:06 , Processed in 1.511476 second(s), Total 91, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号