专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
新手。。求助 计时器A计数
2019-08-07 14:27
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
16335
14
1608
就是想用计时器A来对外部的一个脉冲计数 网上查了一通都只是说把定时器的时钟源设置成待测脉冲即可 具体怎么设置啊 。。。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
yc_2503
2019-08-08 00:34
vivilzb1985 发表于 2013-12-10 23:51
弱弱的问一下的。楼主你这是什么型号的单片机或Arm的啊?
MSP430G2553哎
//#include <msp430x14x.h>
#include <msp430G2553.h>
#include "in430.h"
typedef unsigned char uchar;
typedef unsigned int uint;
uint temp=0x00;
void InitClock();
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
InitClock();
P1SEL |= BIT0;
P1DIR=0Xfe;
// P2DIR=0XFC; //P1、0、1、2、3用作输入端
// P2OUT=0XC0;
P1OUT= 0xff;
CCTL0=CCIE;
CCR0=10;
TACTL=TASSEL_0+MC_1; //子系统时钟,增计数模式
//TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt
//_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
//P1OUT=0x00;
_EINT();
for(;;)
{
}
}
/*****************************************************************************
函数名称:Time_A
功能: 定时器A中断服务子程序
参数: 无
返回值: 无
******************************************************************************/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Time_A(void)
{
//if(temp==0xff+1)
// temp=0x00;
//while(keyAct());
P1OUT^=BIT3;
}
// Timer_A3 Interrupt Vector (TAIV) handler
/*
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV )
{
case 2: break; // CCR1 not used
case 4: break; // CCR2 not used
case 10: P4OUT ^= BIT5; // overflow
break;
}
}
*/
/*
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P4OUT ^= BIT5; // Toggle P3.4
}
*/
/************************************
函数名:InitClock
功能: 初始化时钟
参数: 无
返回值:无
************************************/
void InitClock()
{
unsigned int oscdly;
BCSCTL1&=~XT2OFF; //清XT2,使XT2振荡器有效
do
{
IFG1&=~OFIFG; //清OFIFG
oscdly=5;
while(oscdly--);
}
while(IFG1&OFIFG);
DCOCTL|=DCO0+DCO1+DCO2;
BCSCTL1|=RSEL1+RSEL2+RSEL0;
*/
BCSCTL2|=SELM_2+SELS; //SMCLK AND MCLK USING XT2
}
这是刚刚写的 然后 第一次跑的时候很正常。。。然后过了几分钟之后 再跑就不对了 用仿真器来单步调会发现TAR莫名的清零了。。。
加载中...
查看其它14个回答
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
MSP430G2553哎
//#include <msp430x14x.h>
#include <msp430G2553.h>
#include "in430.h"
typedef unsigned char uchar;
typedef unsigned int uint;
uint temp=0x00;
void InitClock();
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
InitClock();
P1SEL |= BIT0;
P1DIR=0Xfe;
// P2DIR=0XFC; //P1、0、1、2、3用作输入端
// P2OUT=0XC0;
P1OUT= 0xff;
CCTL0=CCIE;
CCR0=10;
TACTL=TASSEL_0+MC_1; //子系统时钟,增计数模式
//TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt
//_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
//P1OUT=0x00;
_EINT();
for(;;)
{
}
}
/*****************************************************************************
函数名称:Time_A
功能: 定时器A中断服务子程序
参数: 无
返回值: 无
******************************************************************************/
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Time_A(void)
{
//if(temp==0xff+1)
// temp=0x00;
//while(keyAct());
P1OUT^=BIT3;
}
// Timer_A3 Interrupt Vector (TAIV) handler
/*
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV )
{
case 2: break; // CCR1 not used
case 4: break; // CCR2 not used
case 10: P4OUT ^= BIT5; // overflow
break;
}
}
*/
/*
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P4OUT ^= BIT5; // Toggle P3.4
}
*/
/************************************
函数名:InitClock
功能: 初始化时钟
参数: 无
返回值:无
************************************/
void InitClock()
{
unsigned int oscdly;
BCSCTL1&=~XT2OFF; //清XT2,使XT2振荡器有效
do
{
IFG1&=~OFIFG; //清OFIFG
oscdly=5;
while(oscdly--);
}
while(IFG1&OFIFG);
DCOCTL|=DCO0+DCO1+DCO2;
BCSCTL1|=RSEL1+RSEL2+RSEL0;
*/
BCSCTL2|=SELM_2+SELS; //SMCLK AND MCLK USING XT2
}
这是刚刚写的 然后 第一次跑的时候很正常。。。然后过了几分钟之后 再跑就不对了 用仿真器来单步调会发现TAR莫名的清零了。。。
一周热门 更多>