|
- #include <msp430.h>
- /*
- * P45_Onclick()
- */
- void P45_Onclick(void)
- {
- P1OUT ^= BIT0;
- }
- /*
- * main.c
- */
- void main(void) {
- WDTCTL = WDTPW | WDTHOLD; // 关闭看门狗
- PM5CTL0 &= ~LOCKLPM5; //解除引脚低功耗模式
- //Led
- P1DIR |= BIT0; //设定P1.0为输出
- P1OUT &= ~BIT0; //设定P1.0的初值为逻辑0
- //Key
- P4DIR &= ~BIT5; //设定P4.5为输入
- P4REN |= BIT5; //启用P4.5的内部电阻
- P4OUT |= BIT5; //将电阻设为上拉
- P4IES |= BIT5; //P4.5设为下降沿中断
- P4IE |= BIT5; //允许P1.3中断
- _enable_interrupts(); //使能总中断,相当于51单片机的EA=1
- while(1); //主程序要有明显的结束标志,无限循环或者进入低功耗待机模式
- }
- #pragma vector = PORT4_VECTOR;
- __interrupt void PORT4_ISR(void)
- {
- unsigned int Key = 0;
- Key = P4IFG & (~P4DIR);
- __delay_cycles(5000);
- if((P4IN & Key) == 0)
- {
- switch(Key){
- case BIT5:P45_Onclick();break;
- default: break;
- }
- }
- P4IFG = 0; //清除中断标志位
- }
复制代码
临摹了一遍楼主的代码,发现430开发板的按键似乎并不好用,如果很久不按,就会需要半天才响应![]() |
|