• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Micro- projekt minutnika, problem
#3
Chyba nie rozumiem logiki tego projektu.

Funkcję counter() wywołujesz z loop i sprawdzasz czy minęła  1s od poprzedniej kontroli - oczywista sprawa.
Ale czemu w samej funkcji masz "for (timepassed=0; timepassed < countdown; timepassed++){" ?
countdown jest to ilość s do końca ale cykl pętli nie jest 1 s.

Kod:
void counter(){
  unsigned long countdown;
  unsigned long timepassed;
  countdown=hours*3600+minutes*60+seconds*1;
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;
  //  for (timepassed=0; timepassed < countdown; timepassed++){///<po co jest ta pętla? spróbuj bez niej.
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Remaining:");
      lcd.setCursor(14,1);
      lcd.print(seconds);
      lcd.setCursor(13,1);
      lcd.print(":");
      lcd.setCursor(11,1);
      lcd.print(minutes);
      lcd.setCursor(10,1);
      lcd.print(":");
      lcd.setCursor(8,1);
      lcd.print(hours);      
    //}
    seconds--;
    if (seconds < 0){
      seconds=59;
      minutes--;
    }
    if (minutes < 0){
      minutes=59;
      hours--;
    }      
  }
  if((hours==0)&&(minutes ==0)&&(seconds==0)){//if (timepassed == 0){
    KaBoom();
  }
  Serial.println(timepassed);
  //Serial.println(seconds);
}
tak naprawdę 
to 
  unsigned long countdown;
  unsigned long timepassed;
 są nie potrzebne.

if (timepassed == 0){ można zamienić na if((hours==0)&&(minutes ==0)&&(seconds==0)){
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Arduino Micro- projekt minutnika, problem - przez Z_kos - 31-05-2020, 10:11

Skocz do:


Przeglądający: 1 gości