//按鍵按3下,會隨機亮燈 C,T值
#define BUTTON_PIN PB3

byte LEDS[][2] = {
  {PB0, PB1}, //0
  {PB1, PB0}, //1
  {PB0, PB2}, //2
  {PB2, PB0}, //3
  {PB2, PB1}, //4
  {PB1, PB2}, //5
  {PB4, PB0}, //6沒用到
  {PB4, PB1}, //7沒用到
  {PB4, PB2}, //8沒用到
};

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP); //按鍵
}

byte gBtnPress = 0;           //按下的次數
bool gDiagnosed = false;      //確診值
void loop() {
  if (digitalRead(PB3) == LOW) {
    gBtnPress ++;             //累積按下的次數
    led_On(5);                //按下燈示
    delay(200);               //跑馬燈速度
    Led_dark();               //全暗
    if (gBtnPress >= 3) {     //按3次時
      Led_Marquee();          //跑馬燈
      gBtnPress = 0;          //按鍵重新計數
      gDiagnosed = ( random(2) == 1) ; //隨機確診值
    }
    else {
      delay(100);            //debunce, PB3和GND間要加電容
    }
  }

  if (gBtnPress == 0) { //按完第三次顯示確診值
    led_On(1);          //C value
    if (gDiagnosed) {   //是否確診
      led_On(3);        //T value
    }
  }
}
void led_On(int index) {
  Led_dark();
  pinMode(LEDS[index][0], OUTPUT);
  pinMode(LEDS[index][1], OUTPUT);
  digitalWrite(LEDS[index][0], LOW);
  digitalWrite(LEDS[index][1], HIGH);
}

void Led_dark() {
  pinMode(PB0, INPUT);
  pinMode(PB1, INPUT);
  pinMode(PB2, INPUT);
  //pinMode(PB4, INPUT);
}
void Led_Marquee() {
  for (int i = 0; i <= 5; i++) {  //跑馬燈
    led_On(5 - i);
    delay(200);
  }
}
ATTINY8520PU