|
依据官网的资料,p1.1和p8.0的第二引脚功能是TA0.0,所以我用P1.1捕获的时候可以正常使用,但是改为p8.0的时候却怎么也进不了中断,求解!!!!程序如下:- #include<msp430x54x.h>
- unsigned int i=0,u;
- #pragma vector = TIMER0_A0_VECTOR
- __interrupt void Timer_A(void)
- {
-
- P9DIR=0XFF;
- P9OUT ^= 0X0F ;//有捕获就闪灯
- }
- void Init_CLK(void)
- {
- WDTCTL = WDTPW + WDTHOLD ; // 关看门狗
- P5SEL |= 0x0C ; // 端口功能选择振荡器
- UCSCTL6 &= ~XT2OFF ; // 振荡器使能
- UCSCTL3 |= SELREF_2 ; // FLLref = REFO
- UCSCTL4 |= SELA_2 ; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
- do
- {
- UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
- SFRIFG1 &= ~OFIFG ;
- }while(SFRIFG1&OFIFG) ; // 检测振荡器错误标志
- UCSCTL6 |= XT2DRIVE0 + XT2DRIVE1 ; // XT2 驱动模式 24~32MHz
- UCSCTL4 |= SELS_5 + SELM_5 ; // SMCLK = MCLK = XT2
- }
- void Init_Timer0_A5(void)
- {
- TA0CCTL0&=~(CCIS1+CCIS0); // 捕获源为P4.0,即CCI0A(也是CCI0B)
- TA0CCTL0|=CM1+SCS+CAP; //下降沿捕获,同步捕获,工作在捕获模式
- TA0CCTL0|=CCIE; //允许捕获比较模块提出中断请求
- TA0CTL|=TASSEL_2; //选择时钟SMCLK
- TA0CTL|=TACLR; //定时器清零,
- TA0CTL|=MC_2;//定时器开始计数(连续计数模式0~0xFFFF) TBCTL|=MC_2;
- P1SEL|=BIT1;//选择p1.1第二功能
- P1DIR &=~BIT1;//选择p1.1方向为输入
-
-
- }
- int main( void )
- {
- WDTCTL = WDTPW + WDTHOLD;P9OUT=0xff;
- Init_Timer0_A5();
- Init_CLK();
- _EINT();
- while(1);
- }
复制代码 我改为P8只是改了
P1SEL|=BIT1;//选择p1.1第二功能
P1DIR &=~BIT1;//选择p1.1方向为输入这两句,可就是不行了·······求解········· |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|