使用TI的MSP430實現完成微控制器定時和中斷相關設計。(西安電子科技大學綜合應用開發實驗任務3)

Alpha.發表於2020-11-21

題目要求:
目標:反應檢測系統(打地鼠), 設計一個反應檢測系統,N個LED指示燈(或者數碼管)分別對應N個按鍵,在指示燈亮的時間t內按下對應按鍵就算命中,此時指示燈熄滅,否則算miss。
要求:完成微控制器定時和中斷相關設計。如果大作業沒有相關設計部分,則需要單獨完成此部分內容;如果大作業中包含相關部分,則只需提交這部分內容的作為平時作業。
平臺:MSP430,MCS51,STM32等皆可。
分析:
該任務需要一個記錄時間的變數,然後判斷是否在5s內摁下按鍵,及時摁下則紅燈亮,綠燈滅;沒有在5s內摁下則綠燈長亮。(直到reset)

以下是使用energia開發環境的程式碼。

const int LED1 =  RED_LED; 
const int LED2 =  GREEN_LED; 
const int buttonPin = PUSH2;
unsigned long time1;
unsigned long time2;

int buttonState = 0;
void setup() {                
  pinMode(LED1, OUTPUT);   
  pinMode(LED2, OUTPUT);  
  pinMode(buttonPin, INPUT_PULLUP);  
  time1 = millis();
  time2 = millis(); 
}

void loop() {
  time2 = millis(); 
  buttonState = digitalRead(buttonPin);
  if (buttonState == LOW){
    if((time2-time1)<5000){
      while(1){
        digitalWrite(LED1,HIGH) ;
        digitalWrite(LED2,LOW) ;
      }
    }
    else{
      while(1){
        digitalWrite(LED1,LOW) ;
        digitalWrite(LED2,HIGH) ;
      }
    }
}
  else{
  digitalWrite(LED2,HIGH) ;
  digitalWrite(LED1,LOW) ;
  }
}

相關文章