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,灯没反应啊,再改接地,也没反应。。照理说不是应该捕获到上升下降沿就翻转吗?
实在是不知道怎么办了,跪求高手解惑,感激不尽。。。
此帖出自
小平头技术问答
#pragma vector=TIMERA0_VECTOR__interrupt void Timer_A0(void){ P1OUT ^=0x01;}
还有lyzhangxiang帖子里的配置是xx21系列的,31是下面的
2、P1.2是CCI1A。3、我偷懒没有判断中断标志位,正确做法应该在中断里面判断对应的标志位来确定是那个中断,参考下图
一周热门 更多>