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,灯没反应啊,再改接地,也没反应。。照理说不是应该捕获到上升下降沿就翻转吗?
实在是不知道怎么办了,跪求高手解惑,感激不尽。。。
此帖出自
小平头技术问答
调试设置断点检查呀
#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:文件库keilmain.c 27
另外我把TAIV &= ~TAIV;去掉后通过然后测试结果还是跟之前一样,还可能会是什么原因呢?
一周热门 更多>