亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
關于MSP430的中斷和查詢方式
[打印本頁]
作者:
seatlesue
時間:
2017-4-6 00:09
標題:
關于MSP430的中斷和查詢方式
MSP430F5529的芯片
使用按鍵S2,以查詢方式控制LED1:按下S2,LED1開始以1Hz的頻率開始閃爍,再次按下S2,LED1熄滅;同時,使用按鍵S1以中斷方式,控制LED1的閃爍或熄滅。這個可以用選擇語句吧 但是 我就不知道中斷函數下面又有聲明 我想用switch語句 但是現在只能寫成這個樣子了 接下來應該怎么辦呢 拜托各位大神了
#include<msp430.h>
#define OSC 1000000
#define u8 unsignedchar
#define u16 unsignedshort
#define S1 (P1IN&BIT7)
#define S2 (P2IN&BIT2)
u8 led_flash;
void GPIO_init(void);
void delay_ms(u16 time);
/*
* main.c
*/
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
GPIO_init();
_BIS_SR(GIE);
P1OUT |= BIT0;
while(1)
{
if(!S2)
{
delay_ms(10);
if(!S2)
{
while(!S2);
delay_ms(10);
led_flash=1;
}
if(!S2)
{
led_flash=2;
}
switch(led_flash)
{case 1:
P8OUT|=BIT1;
P1OUT|=BIT0;
delay_ms(500);
P8OUT&=~BIT1;
P1OUT&=~BIT0;
delay_ms(500);
break;
case 2:
P1OUT^= BIT0;
break;
case 3:
break;
default: ;
}
}
}
}
void GPIO_init(void)
{
P1DIR|=BIT0;//LED1
P1DIR&=~ BIT7;
P1OUT|=BIT7;
P1REN|=BIT7;
P1IFG= 0x00;
P1IES|= BIT7;
P1IE|= BIT7;
P1DIR|=BIT0;//LED1
P2DIR&=~ BIT2;
P2OUT|=BIT2;
P2REN|=BIT2;
}
void delay_ms(u16 time)
{
while(time--)
__delay_cycles(OSC/1000);
}
#pragma vector=PORT1_VECTOR
__interrupt void Port1_ISR(void)
{
if(P1IFG & BIT7)
{
delay_ms(10);
while (!S1)
delay_ms(10);
P1IFG&=~ BIT7;
P1OUT^= BIT0;
}
}
復制代碼
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1