5362|9

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TIMERB的应用!!急!!! [复制链接]

我想用定时器b来做iar里面定时器a的演示程序功能。但是我把程序改好之后,一直不能正常运行,从右面的disassem××y窗口里面看不到数据。请问为何。程序那里有错?谢谢大侠!!!
#include <msp430x14x.h>
void main(void)
{
P1DIR |= 0x03; // P1.0 P1.1output
P1OUT |= 0x00;
while(1)
{
WDTCTL=WDTPW+WDTHOLD;
TBCTL=0X0220; //TimerB 为连续计数模式
TBCCR0=3000; //
TBCCTL0=CCIE;
_NOP();
}
}

#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B(void)
{
P1OUT^=BIT0;
TBCCR0 += 3000;
}

最新回复

#include <msp430x14x.h> unsigned int m; void main(void) {WDTCTL=WDTPW+WDTHOLD; P4DIR |= 0x01;                // P4.0 output P4OUT |= 0x00; m=0; while(1) { TBCTL=0X0220; TBCCR0=60000; TBCCTL0=CCIE; _EINT(); } } #pragma vector=TIMERB0_VECTOR __interrupt void Timer_B(void) { if (m==4) {   P4OUT^=BIT0;   TBCCR0 += 60000;   m=0;     }   m++; }  详情 回复 发表于 2004-9-24 08:38
 
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
总中断没打开。
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

谢谢!!定时器不是两个中断向量吗?

定时器不是两个中断向量吗?我看在演示程序里面TA的就没有,我也就没加!!!!
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
调用中断程序得把总中断打开。不然难以进中断
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
这是iar的例程:它能够正常运行,请问为何?我就是想用定时器b做这样的功能
请指点。谢谢!!!

//********************************************************
// MSP-FET430P140 Demo - Timer_A Toggle P1.0, CCR0 Contmode ISR, DCO SMCLK
//
// Description; Toggle P1.0 using using software and TA_0 ISR. Toggle rate is
// set at 50000 DCO/SMCLK cycles. Default DCO frequency used for TACLK.
// Durring the TA_0 ISR P0.1 is toggled and 50000 clock cycles are added to
// CCR0. TA_0 ISR is triggered exactly 50000 cycles. CPU is normally off and
// used only durring TA_ISR.
// ACLK = n/a, MCLK = SMCLK = TACLK = DCO~ 800k
//
//
// MSP430F149
// ---------------
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.0|-->LED
//
// M. Buccini
// Texas Instruments, Inc
// October 2003
// Built with IAR Embedded Workbench Version: 2.20A
//************************************************************

#include <msp430x14x.h>
void main(void)
{
P1OUT &=0X00;
while(1){

WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x01; // P1.0 P1.1,P1.2,P1.3 output
P1OUT |= 0x08;
CCTL0 = CCIE; // CCR0 interrupt ena××ed
CCR0 = 30000;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode

_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

}
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01; // Toggle P1.0
CCR0 += 30000; // Add Offset to CCR0
}
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
记得开中断.
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
主程序里再加一句:
_EINT();
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 

谢谢!!!

问题解决!!!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
能够告诉我是怎样解决的吗?我发现TimerB 在连续计数模式,在中断中不断修改TBCCR的时候,有时候会出现定时不准的情况。搞不清楚为什么?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 

程序是这样的,你看看!!!

#include <msp430x14x.h>
unsigned int m;
void main(void)
{WDTCTL=WDTPW+WDTHOLD;
P4DIR |= 0x01; // P4.0 output
P4OUT |= 0x00;
m=0;
while(1)
{

TBCTL=0X0220;
TBCCR0=60000;
TBCCTL0=CCIE;
_EINT();
}
}
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B(void)
{
if (m==4)
{
P4OUT^=BIT0;
TBCCR0 += 60000;
m=0;
}
m++;
}
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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