6002|15

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

launch pad 捕获模式求解,好心人帮帮吧。。。。 [复制链接]

launch pad捕获模式一直不成功,纠结了几天了啊,各种资料都找过也不知是哪里出问题了,代码如下,很简单的一个:


#include "msp430g2231.h"


void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                
  P1DIR |= 0x01;       //P1方向                    
  P1OUT |= 0x01;       
  P1SEL |= 0x02;       //P1.1口选择第二功能CCI0A
  TACTL = TASSEL_2  + ID_3 + MC_2 ;   //SMCLK,8分频,连续计数模式       
  CCTL1 = CAP + SCS + CM_3 + CCIS0 + CCIE;   //捕获模式,同步,上下沿都捕获,输入源为CCI0A,使能CCR1中断
  _EINT();
  while(1);
}

// Timer_A1 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
 switch( TAIV )
 {
   case  1: P1OUT ^= 0x01;break; 
   case  2: P1OUT ^= 0x01;break;  //这句应该可以不用吧?                    
   case 10: break;
 }
}



然后硬件部分我用P1.1接vcc,灯没反应啊,再改接地,也没反应。。照理说不是应该捕获到上升下降沿就翻转吗?

实在是不知道怎么办了,跪求高手解惑,感激不尽。。。

最新回复

我能力有限,也是东查西查查到的,qq不常上,还是算了吧。有问题发到坛子里,大家共同学习,人多力量大。  详情 回复 发表于 2012-4-30 21:43
 
点赞 关注

回复
举报

5276

帖子

5

TA的资源

裸片初长成(中级)

沙发
 
P1.1不会是悬空的吧?

调试设置断点检查呀
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

板凳
 
试一下:
switch( TAIV&0x02 )
{
   case  0: break;
   default: P1OUT ^= 0x01;break;                     
}
TAIV &= ~TAIV;

[ 本帖最后由 shower.xu 于 2012-4-30 09:13 编辑 ]
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

4
 

回复 楼主 pz_cloud 的帖子

引脚配置问题,已经在主贴中答复!
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

5
 
中断标志没有手动清除,也是个大问题
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

6
 
原帖由 lyzhangxiang 于 2012-4-28 14:30 发表 引脚配置问题,已经在主贴中答复!

说我还是说楼主

lyzhangxiang说的回答在https://bbs.eeworld.com.cn/thread-326358-2-1.html ,你在哪里问过
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 板凳 shower.xu 的帖子

您好,我试了下您的方法,改后代码是:



#include "msp430g2231.h"


void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;               
  P1DIR |= 0x03;       //P1方向                    
  P1OUT |= 0x01;      
  P1SEL |= 0x02;       //P1.1口选择第二功能CCI0A
  TACTL = TASSEL_2  + ID_3 + MC_2 ;   //SMCLK,8分频,连续计数模式      
  CCTL1 = CAP + SCS + CM_3 + CCIS0 + CCIE;   //捕获模式,同步,上下沿都捕获,输入源为CCI0A,使能CCR1中断
  _EINT();
  while(1);
}

// Timer_A1 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
switch( TAIV&0x02 )
  {
    case 0: break;
    default: P1OUT ^= 0x01;break;
  }

TAIV &= ~TAIV;
}


这个没有通过编译。。。
Error[Pe137]: expression must be a modifiable lvalue D:\文件库\keil\main.c 27


另外我把TAIV &= ~TAIV;去掉后通过然后测试结果还是跟之前一样,还可能会是什么原因呢?
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

8
 
这样试一下:
初始化模式这样写
P1DIR = 0x01;
P1OUT&= ~0x01;
P1SEL=0x02;
CCTL0=CM_3+SCS+CCIS_0+CAP+CCIE;
TACTL=TASSEL_2+MC_2+ID_3;
中断应该是Timer0吧

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0(void)
{
P1OUT ^=0x01;
}

还有lyzhangxiang帖子里的配置是xx21系列的,31是下面的


 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 8楼 shower.xu 的帖子

非常非常感谢!!!终于能用了啊!!
配置的确是你给的那个图,而且只能用ccr0中断!
但是还有几个问题想请教一下:
1       P1OUT那边配置P1.1口为1是不是就相当于使能了上拉电阻呢?因为我把P1.1跟vcc连接没是反应的,但是跟gnd连接或断开都能进入中断
2       如果只能通过ccr0中断的话,那ccr1是干嘛的呢?我把配置都改成ccr1就没有用了。我记得好像也有捕获功能的啊
3       ccr0是用的另外一个中断向量对吧?也就是说在timer0中断里是不能用TAIV的是吗?

我是第一次使用430,也是第一次学单片机,看网上430捕获方面的例程真的不多啊,才来发帖求助,果然还论坛上人才多啊。。。
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

10
 

回复 8楼 shower.xu 的帖子

对了,还有一个问题,ccr0的自动复位是发生在什么时候呢?比如说我现在发生一个上升沿,然后进入中断,这个时候ccr0会已经被置0了吗?还是我能在中断函数中读取ccr0的值呢?
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

11
 
原帖由 pz_cloud 于 2012-4-30 13:21 发表 非常非常感谢!!!终于能用了啊!! 配置的确是你给的那个图,而且只能用ccr0中断! 但是还有几个问题想请教一下: 1 P1OUT那边配置P1.1口为1是不是就相当于使能了上拉电阻呢?因为我把P1.1跟vcc连接 ...
1、当端口设为输入,上下拉寄存器打开时,P1OUT是选择上下拉电阻功能。这里要加上P1REN |=0x02; 这里应该是默认高电平,所以第一次需要下降沿触发。

2、P1.2是CCI1A。
3、我偷懒没有判断中断标志位,正确做法应该在中断里面判断对应的标志位来确定是那个中断,参考下图

 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

12
 
原帖由 pz_cloud 于 2012-4-30 13:24 发表 对了,还有一个问题,ccr0的自动复位是发生在什么时候呢?比如说我现在发生一个上升沿,然后进入中断,这个时候ccr0会已经被置0了吗?还是我能在中断函数中读取ccr0的值呢?
你是用的连续计数模式,如果没有使能溢出中断,到最大值会自动清零,具体看下图

 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

13
 

回复 12楼 shower.xu 的帖子

非常感谢你的帮助,解决了我很多困惑啊,请问能加个qq吗?以后肯定还有需要帮忙的时候,有人指导的话效率高多了啊
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

14
 

回复 12楼 shower.xu 的帖子

我的593245898
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

15
 
我能力有限,也是东查西查查到的,qq不常上,还是算了吧。有问题发到坛子里,大家共同学习,人多力量大。
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 15楼 shower.xu 的帖子

恩,好的,依然非常感谢你
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表