为什么我关了定时器的中断却还能进入

bandaoyu 2012-08-09 08:50:41
void timerB_init()
{
//B定时器,用于
TBCCTL0 = CCIE; // CCR0 interrupt enabled, Capture/compare interrupt enable
TBCCR0 = 2048;//1s
TBCTL = TBSSEL_1 + ID_3+MC_1 + TBCLR; // ACLK,32768HZ,8分频contmode, clear TAR
TBCTL&=~TBIE;
}

为什么 我TBCTL&=~TBIE;这样关了定时器B的中断,却还能进入到定时器B的中断程序中?
...全文
328 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bandaoyu 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

把相关的程序一起贴上来,看看
[/Quote]上面有代码
方丈的寺院 2012-08-14
  • 打赏
  • 举报
回复
把相关的程序一起贴上来,看看
方丈的寺院 2012-08-12
  • 打赏
  • 举报
回复
你主函数里怎么写的,是在什么地方使能中断,你肯定在执行完中断后又开启了
C_ROOKIES 2012-08-12
  • 打赏
  • 举报
回复
你看看你是不是开了其它中断,
bandaoyu 2012-08-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
你主函数里怎么写的,是在什么地方使能中断,你肯定在执行完中断后又开启了
[/Quote]
没有开启,一直保持着0
bandaoyu 2012-08-11
  • 打赏
  • 举报
回复

// Timer B0 interrupt service routine
#pragma vector=TIMER0_B0_VECTOR
__interrupt void TIMER0_B0_ISR(void)
{


WindSimple[SimpCount]=TA1R*0.88*2;
TA1R = 0;

SimpCount++;
DelayTime++;
if(SimpCount==3)
SimpCount = 0;

//风速计计数清零

}
bandaoyu 2012-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
interrupt x
x写错了?
你确定执行这个后TBCTL是 个正确的值?
如果是51机,TBIE只是一位 ~TBIE会得到0xff或者0xfe 然后再TBCTL&,这是不对的
[/Quote]

是MSP430 我看了TBCTL的值,的确是中断允许位已经为0了
dceacho 2012-08-09
  • 打赏
  • 举报
回复
interrupt x
x写错了?
你确定执行这个后TBCTL是 个正确的值?
如果是51机,TBIE只是一位 ~TBIE会得到0xff或者0xfe 然后再TBCTL&,这是不对的

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧