4053|5

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TIMERA0 [复制链接]

请教大家一个问题,我想用timer_a 的ccr0做一个定时中断,还想timer_a 的ccr1做一个1赫兹的脉冲方波,可就是不行,求教大家

#include "stdint.h"
#include <msp430x42x0.h>


unsigned int wDelay = 0;


// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TAIV )
{
//case 2: P1OUT ^= 0x01; // 想用CCR1但是没输出
case 2: break;
case 4: break; // CCR2 not used
case 10: P1OUT ^= 0x01; // overflow
break;
}
}



#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A( void)
{
wDelay++;
CCR0 += 1500;
}

void main(void)
{

WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
TACTL = TASSEL1 + TACLR + TAIE ;//时钟源SMCLK,清除TAR
CCTL0 = CCIE;//CCR0中断使能
CCR0 = 50;//产生3.2ms的定时
CCR1= 5000;
CCTL1 = OUTMOD_2;
TACTL |= MC1;//Timer_a增计数模式
_EINT();//使能系统中断
P1DIR |= 0x01;

for (;;)
{
_NOP();
}
}

从P1.0口,如果用CASE2的话就没有脉冲输出,如果用CASE10的话就有脉冲输出,为什么呀?

最新回复

谢谢你,但这时ccr0的中断就时间很长,我想用一个20ms的中断采集键盘。 还能怎么改,请教了。  详情 回复 发表于 2009-2-25 13:39
 
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
就是秒表嘛!很好弄的啊!
用比较中断,时钟选择ACLK
记数值,加到32768就可以了啊
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你好,有例子没?谢谢!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
又是中断 又是硬件PWM(CCTL1 = OUTMOD_2;) 把你的要求说细致点 。  就产生一个1Hz的方波还是什么?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用:

请教大家一个问题,我想用timer_a 的ccr0做一个定时中断,还想timer_a 的ccr1做一个1赫兹的脉冲方波,可就是不行,求教大家

#include "stdint.h"
#include <msp430x42x0.h>


unsig...
///////////////////////////////////////////////////////////////////////////////////
这样修正一下吧:
#include "stdint.h"
#include <msp430x42x0.h>


unsigned int wDelay = 0;


// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A1(void)
{
switch( TAIV )
{
//case 2: P1OUT ^= 0x01; // 想用CCR1但是没输出
case 2: break;
case 4: break; // CCR2 not used
///////case 10: P1OUT ^= 0x01; // overflow
break;
}
}



#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A( void)
{
wDelay++;
CCR0 += 1500;

P1OUT ^= 0x01;}//测量这
void main(void)
{

WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
TACTL = TASSEL1 + TACLR + TAIE ;//时钟源SMCLK,清除TAR
CCTL0 = CCIE;//CCR0中断使能
CCR0 = 10000;//这时CCR0的值为演示值,依实际修正,但CCR0应大于CCR1(增计数模式)
CCR1= 5000;//CCR1应小于CCR0
CCTL1 = OUTMOD_2;
TACTL |= MC1;//Timer_a增计数模式
_EINT();//使能系统中断
P1DIR |= 0x01;

for (;;)
{
_NOP();
}
}
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢你,但这时ccr0的中断就时间很长,我想用一个20ms的中断采集键盘。
还能怎么改,请教了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表