#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左右,不能再上去了,有什么办法测更大的频率吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
更大的平率收到晶振限制 8M晶振不分频只能到1/8us
测更小的频率可以这样 用一个count来记录计数器溢出次数
每溢出一次count++
最后根据count的数值和计数器的最终值确定 测量的频率。
一周热门 更多>