最近再写一段程序关于msp430f149的,就是用定时器A计数,求解答,最好有程序。

具体要求是,当检测到有高电平的时候开始计数,当高电平置地后,计数停止,这个技术值就是我所需要的。谢谢了。... 具体要求是,当检测到有高电平的时候开始计数,当高电平置地后,计数停止,这个技术值就是我所需要的。谢谢了。 展开
 我来答
liangsai
2013-08-22 · TA获得超过835个赞
知道小有建树答主
回答量:1508
采纳率:0%
帮助的人:639万
展开全部
你是想开始记时间还是记下脉冲个数?
我理解为一个开关 控制定时!

关键是要把两个引脚连在一起比如p2.0 p2.1
那么程序如下

P2IFG = 0x00; //P2中断标志位清零
P2DIR &=~ (BIT0+BIT1); //为输入

P2IES |= BIT0; //P2.0选择下降沿中断
P2IES&=~BIT1; //P2.1上升沿中断
P2IE |= BIT0+BIT1; //打开P2.0中断使能

CCR0 = 32768/2+1; //设置定时器A的中断时间为0.5S(可改)
TACTL = TASSEL_1 + MC_1; //计数时钟ACLK, 增计数模式8分频+ID_3
CCTL0 |= CCIE;

#pragma vector=PORT2_VECTOR
__interrupt void PORT2_ISR(void)
{
if(P2IFG & BIT0)
{
CCTL0&=~CCIE;
}
f(P2IFG & BIT1)
{
CCTL0 |= CCIE;
}

}
/*******************************************
函数名称:TimerA_ISR
功 能:定时器A的中断服务函数
参 数:无
返回值 :无
********************************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
//NUM++;
//写计数程序吧
}
更多追问追答
追问
我用的端口是一个端口 ,而不是两个端口(也就是当P1.0口变高电平时开始计数,变低电平时停止计数),你为什么计数不用定时器A中自带的寄存器TAR呢,设定MCx开始随时设置开始停止。
追答
因为那个计数不能满足要求要是能满足你就写出来了
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式