#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左右,不能再上去了,有什么办法测更大的频率吗? |