有什么办法测更大的频率吗?

[复制链接]
877|6
 楼主| jiaxw 发表于 2015-7-2 22:23 | 显示全部楼层 |阅读模式
#include "msp430g2553.h"
.......
        P1SEL|=BIT0;                              // 设置 P1.0 为 TimerA 外部计数信号输入口
          P1DIR&=~BIT0;                             // 设置 P1.0 为输入口
                                           // TimerA 配置
          TACTL=TASSEL_0;                           // 定时器 A 时钟源选择:TACLK 记上升沿次数
          TACTL=ID_0;                               // 计数时钟分频系数选择:1
          while(1)
          {
           TAR=0x0000;                             // 定时器 A 计数寄存器内容清零
            TACTL=MC_2;                             // 定时器 A 工作模式选择:连续模式
               delay_nms(261);                        // 产生 1s 计数闸门
               TACTL=MC_0;                             // 定时器 A 工作模式选择:停止模式
            count=TAR;  // 6553X 最大极限值
......
这个程序是用定时器A来在1S内测上升沿的次数得出信号的频率,
TAR 只能计数到6553X左右,不能再上去了,有什么办法测更大的频率吗?
spark周 发表于 2015-7-2 22:23 | 显示全部楼层
两次循环 就行了吧
liliang9554 发表于 2015-7-2 22:24 | 显示全部楼层

for()
for();
 楼主| jiaxw 发表于 2015-7-2 22:24 | 显示全部楼层
cafppla 发表于 2015-7-4 14:09 来自手机 | 显示全部楼层
前端分频
dirtwillfly 发表于 2015-7-5 20:22 | 显示全部楼层
这是要测更小的频率吧?可以增加一个计数变量,每当TAR 计数到6553X变量加1
pengchang1994 发表于 2015-7-6 15:50 | 显示全部楼层
看你的程序也是要测量更小的频率
更大的平率收到晶振限制   8M晶振不分频只能到1/8us
测更小的频率可以这样       用一个count来记录计数器溢出次数
每溢出一次count++   
最后根据count的数值和计数器的最终值确定 测量的频率。
其实版主就是这个意思。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部