打印

msp430捕获中断无法进入

[复制链接]
2267|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
碧螺春_123|  楼主 | 2015-8-10 12:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void init_TB()
{
  
   TBCTL|=TBSSEL_2;                           //TACLK=SMCLK
   TBCCTL0|=CCIE;
   TBCCR0=62500;                               //CCR0定时周期15.625ms
   TBCCTL1|=CM_1+CCIS_0+SCS+CAP+CCIE;        //CCR1上升沿捕获,
   TBCTL|=MC_1;                               //增计数模式
}
#pragma vector=TIMERB1_VECTOR
__interrupt void Timer_a1(void)
{
     PutString0("A1 ");
     if(TBIV==2)
     count++;                            //捕获一个脉冲,count加一
     TBCCTL0|=CCIE;     
}

相关帖子

沙发
dirtwillfly| | 2015-8-11 09:54 | 只看该作者
你用的什么型号msp430?
建议先运行一个官网的类似例程试试

使用特权

评论回复
板凳
shenmu2012| | 2015-8-11 19:46 | 只看该作者
还需要开启这个终端部获得中能及总中断的。

使用特权

评论回复
地板
shenmu2012| | 2015-8-11 19:47 | 只看该作者
单独看着两个程序代码的,寄存器配置上都是没啥问题的。

使用特权

评论回复
5
碧螺春_123|  楼主 | 2015-8-25 09:24 | 只看该作者
dirtwillfly 发表于 2015-8-11 09:54
你用的什么型号msp430?
建议先运行一个官网的类似例程试试

用的msp430f149  

使用特权

评论回复
6
碧螺春_123|  楼主 | 2015-8-25 09:24 | 只看该作者
shenmu2012 发表于 2015-8-11 19:46
还需要开启这个终端部获得中能及总中断的。

总中断开了的

使用特权

评论回复
7
dirtwillfly| | 2015-8-25 12:40 | 只看该作者

这个型号官网有很多例程,你先运行试试
例程都在430ware里

使用特权

评论回复
8
comeon201208| | 2015-8-26 14:30 | 只看该作者
430的中断多很,需要都确认打开的,还有你的信号的输入管脚寄存器的设置的也需注意。

使用特权

评论回复
9
碧螺春_123|  楼主 | 2015-8-26 16:55 | 只看该作者
comeon201208 发表于 2015-8-26 14:30
430的中断多很,需要都确认打开的,还有你的信号的输入管脚寄存器的设置的也需注意。 ...

谢谢哈

使用特权

评论回复
10
zhangbo1985| | 2015-8-27 13:54 | 只看该作者
你这同时用定时跟捕获的功能?最好分开的吧,单用捕获功能的就可以的。

使用特权

评论回复
11
baimiaocun2015| | 2015-8-27 18:19 | 只看该作者
采用捕获功能的时候就不要用其定时功能了的。

使用特权

评论回复
12
baimiaocun2015| | 2015-8-27 18:20 | 只看该作者
针对其定时功能的,可以再开一个timer的专门做定时用即可。

使用特权

评论回复
13
hudi008| | 2015-8-27 22:07 | 只看该作者
总中断呢?

使用特权

评论回复
14
lefeng| | 2015-8-31 20:42 | 只看该作者
设置断点看看哪些地方没执行

使用特权

评论回复
15
风清扬mxz| | 2015-9-2 10:47 | 只看该作者
引脚没有配置,选择引脚的第二功能

使用特权

评论回复
16
迪卡| | 2015-9-7 14:04 | 只看该作者
也可能是其他部分出了问题,楼主给的程序太短

使用特权

评论回复
17
李冬发| | 2015-9-7 14:31 | 只看该作者
void Timer_init(void)
{
        // 8MHz SMCLK
        TACTL = TASSEL_2 + MC_2;            // SMCLK, start in continuous mode
        TACCTL0 = SCS + CM1 + CAP + CCIE;   // Sync, Neg Edge, Capture, Int
        TACCTL1 = SCS + CM1 + CAP + CCIE;   // Sync, Neg Edge, Capture, Int
        TACCTL2 = SCS + CM1 + CAP + CCIE;   // Sync, Neg Edge, Capture, Int
}

这个是可以运行的。你看看你哪不对了,要是用这个可以也不能运行,你就找找别的地方了。

使用特权

评论回复
18
Thor9| | 2015-9-7 20:44 | 只看该作者
是程序上无法进入,还是引脚没连对呢

使用特权

评论回复
19
冰河w| | 2015-9-9 22:20 | 只看该作者

430的中断比较多,需要都确认打开的

使用特权

评论回复
20
FireRiver9| | 2015-9-9 22:27 | 只看该作者
寄存器配置对了吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

146

帖子

1

粉丝