搜索
bottom↓
回复: 11

【求助】MSP430F5438定时器TA捕获的问题

[复制链接]

出0入0汤圆

发表于 2013-4-8 12:43:25 | 显示全部楼层 |阅读模式
依据官网的资料,p1.1和p8.0的第二引脚功能是TA0.0,所以我用P1.1捕获的时候可以正常使用,但是改为p8.0的时候却怎么也进不了中断,求解!!!!程序如下:
  1. #include<msp430x54x.h>
  2. unsigned int i=0,u;
  3. #pragma vector = TIMER0_A0_VECTOR
  4. __interrupt void Timer_A(void)
  5. {
  6.    
  7.     P9DIR=0XFF;
  8.     P9OUT ^= 0X0F ;//有捕获就闪灯

  9. }

  10. void Init_CLK(void)
  11. {
  12.   WDTCTL     = WDTPW + WDTHOLD                            ; // 关看门狗
  13.   P5SEL     |= 0x0C                                       ; // 端口功能选择振荡器
  14.   UCSCTL6   &= ~XT2OFF                                    ; // 振荡器使能
  15.   UCSCTL3   |= SELREF_2                                   ; // FLLref = REFO
  16.   UCSCTL4   |= SELA_2                                     ; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
  17.   do
  18.   {
  19.     UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志                                                         
  20.     SFRIFG1 &= ~OFIFG                                     ;
  21.   }while(SFRIFG1&OFIFG)                                   ; // 检测振荡器错误标志
  22.    UCSCTL6   |= XT2DRIVE0 + XT2DRIVE1                      ; // XT2 驱动模式 24~32MHz                                            
  23.    UCSCTL4   |= SELS_5 + SELM_5                            ; // SMCLK = MCLK = XT2
  24. }

  25. void Init_Timer0_A5(void)
  26. {

  27.         TA0CCTL0&=~(CCIS1+CCIS0); // 捕获源为P4.0,即CCI0A(也是CCI0B)
  28.         TA0CCTL0|=CM1+SCS+CAP; //下降沿捕获,同步捕获,工作在捕获模式
  29.         TA0CCTL0|=CCIE; //允许捕获比较模块提出中断请求
  30.         TA0CTL|=TASSEL_2; //选择时钟SMCLK
  31.         TA0CTL|=TACLR; //定时器清零,      
  32.         TA0CTL|=MC_2;//定时器开始计数(连续计数模式0~0xFFFF) TBCTL|=MC_2;
  33.         P1SEL|=BIT1;//选择p1.1第二功能
  34.         P1DIR &=~BIT1;//选择p1.1方向为输入
  35.         
  36.       
  37. }

  38. int main( void )
  39. {

  40.   WDTCTL = WDTPW + WDTHOLD;P9OUT=0xff;
  41.   Init_Timer0_A5();
  42.   Init_CLK();
  43.   _EINT();
  44.   while(1);
  45. }
复制代码
我改为P8只是改了
P1SEL|=BIT1;//选择p1.1第二功能
P1DIR &=~BIT1;//选择p1.1方向为输入这两句,可就是不行了·······求解·········

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2013-4-8 14:31:27 | 显示全部楼层
帮你看了下手册  P1.1 TA0 CCR0 capture: CCI0A input, compare: Out0 output    P8.0 TA0 CCR0 capture: CCI0B input, compare: Out0 output  不一样啊 一个是CCI0A 一个是CCI0B
楼主再好好看看端口描述
TA0CCTL0&=~(CCIS1+CCIS0); // 捕获源为P4.0,即CCI0A(也是CCI0B) ????

出0入0汤圆

 楼主| 发表于 2013-4-8 15:53:49 | 显示全部楼层
liujian6f 发表于 2013-4-8 14:31
帮你看了下手册  P1.1 TA0 CCR0 capture: CCI0A input, compare: Out0 output    P8.0 TA0 CCR0 capture: C ...

嗯。。。是我疏忽了,这个原本是TB(P4.0端口)的捕获程序,我把他改成TA的。。。。。。。。

出0入0汤圆

 楼主| 发表于 2013-4-8 16:22:03 | 显示全部楼层
liujian6f 发表于 2013-4-8 14:31
帮你看了下手册  P1.1 TA0 CCR0 capture: CCI0A input, compare: Out0 output    P8.0 TA0 CCR0 capture: C ...

我试着改成TA0CCTL0|=CCIS0;//
        TA0CCTL0&=~CCIS1;// 使他CCIS位变为01;也就是CCI0B输入信号,下载后发现可以进中断了,但是灯是常亮的,没有闪烁,这是为什么呢?

出0入0汤圆

发表于 2013-4-8 16:37:42 | 显示全部楼层
老兄你有用仿真器吧   一步步走看下不就知道了嘛!

出0入0汤圆

 楼主| 发表于 2013-4-8 16:45:37 | 显示全部楼层
liujian6f 发表于 2013-4-8 16:37
老兄你有用仿真器吧   一步步走看下不就知道了嘛!

我在中断里加了个自加10000次才闪烁一次,他就闪的慢了一点,看来进入中断非常快啊.........但我外部给的只有1hz,照理应该一秒进一次才对呀······

出0入0汤圆

发表于 2013-4-15 20:35:09 | 显示全部楼层
我的也是进不了中断

出0入0汤圆

发表于 2013-4-22 14:58:26 | 显示全部楼层
mark 一下 最近也是十分纠结捕获。。。

出0入0汤圆

发表于 2013-6-7 10:09:17 | 显示全部楼层
我也是啊,遇到捕获的问题了

出0入0汤圆

发表于 2013-6-13 22:36:50 | 显示全部楼层
捕获程序,,好好看看,谢谢

出0入0汤圆

发表于 2013-8-11 07:58:36 | 显示全部楼层
p8.0口是CCIB的输入端口,要使用的话必须先设定寄存器使用CCIB捕获端口,你的应该是没有设定使用这个端口

出0入0汤圆

发表于 2015-11-4 15:41:08 | 显示全部楼层
请问TA捕获问题解决了吗?
我一直进不了中断,可以加QQ问问吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 01:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表