代码如下,开关S1能正常工作S2不能,而且有个问题,仿真的时候直接跳进了P1口的中断。
请大神看看,再次跪谢。
- #include "msp430f5529.h"
- #include <stdint.h>
- /*
- P1.7-->S1
- P2.2-->S2
- P8.1-->LED2
- P8.2-->LED3
- S1------LED2
- S2------LED3
- */
- void GPIO_init(void)
- {
- P1DIR &= ~BIT7;
- P2DIR &= ~BIT2;
- P1REN |= BIT7;
- P2REN |= BIT2;
- P1OUT |= BIT7;
- P2OUT |= BIT7;
- P1IES &= (~BIT7);
- P2IES &= (~BIT2);
- P1IE |= BIT7;
- P2IE |= BIT2;
- /* */
- P8DIR |= BIT2+BIT1;
- P8OUT = 0XFF;
- }
- #pragma vector=PORT1_VECTOR
- __interrupt void PORT1_ISR()
- {
- P8OUT ^= BIT1;
- while(!(P1IN & BIT7));
- __delay_cycles(200000);
- P1IFG &= (~BIT7);
- }
- #pragma vector=PORT2_VECTOR
- __interrupt void PORT2_ISR()
- {
- P8OUT ^= BIT2;
- while(!(P2IN & BIT2));
- __delay_cycles(200000);
- P2IFG &= (~BIT2);
- }
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD;
- GPIO_init();
- __bis_SR_register(LPM4_bits +GIE);
- }
复制代码
此帖出自
小平头技术问答
一周热门 更多>