INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Timer Richtig dastellen
03.02.2019, 21:38
Beitrag #1
Timer Richtig dastellen
moin
ich bin grade dabei mir eine Regattauhr zu bauen.

Dafur will ich einen 5 minuten timer haben der dann nahc ablauf der zeit ins Hauptprogramm springt und mit Die Geschwindigkeit anzeigt und eventuell auch den kurs aufzeichnet.

jetzt meiAktuelles problem

der imer zählt runter und bei <10 sekunden zeigt er nicht 09 odern gleich 9 das ist natürlich nicht schön

ich habe dann versuch einfach die 0 als zeichen einzutragen das ging auch nicht da er es dann überschreibt

vielicht könnt ihr mir ja helfen mit meinem kauderwelsch

das ganze ist mit einem tiny gps und einem kleinen 1,2 zoll oled display[/php]

Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
int Minuten = 4;
int Sekunden = 15;



void setup() {
  u8g2.begin();
    ss.begin(GPSBaud);
    Serial.begin(9600);

}

void loop (){
  if (Sekunden ==0, Minuten==-1){
    u8g2.clearBuffer();
    u8g2.setFont(u8g2_font_fub42_tf);
     u8g2.drawStr(0,52,"GPS");
     u8g2.sendBuffer();
  }
   else
  Zeit();
}
void Zeit() {
  

  u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_ncenB12_tr); // choose a suitable font
  u8g2.drawStr(0,12,"Start in:");  // write something to the internal memory
  u8g2.setFont(u8g2_font_fub42_tf); // choose a suitable font
  char bufm[8];
sprintf (bufm, "%d", Minuten);
  u8g2.drawStr(0,60,bufm);
  u8g2.drawStr(28,52,":");
  
  if (Sekunden<10 ){
    char bufs[8];
    sprintf (bufs, "%d", Sekunden);
    u8g2.drawStr(45,60,"0");
    u8g2.drawStr(80,60,bufs);
    
  }

else
u8g2.setFont(u8g2_font_fub42_tf);
char bufs[8];
sprintf (bufs, "%d", Sekunden);
  u8g2.drawStr(45,60,bufs);
  u8g2.sendBuffer();      // transfer internal memory to the display
  
   if (Sekunden ==0 ){
    Sekunden=9;
     Minuten--;
     }
     else
     Sekunden--;
  
    delay(1000);  
  
  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2019, 22:01
Beitrag #2
RE: Timer Richtig dastellen
Schau Dir mal die Formatdefinitionen von printf und Co an.

Code:
sprintf (bufs, "%02d", Sekunden);

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2019, 22:35
Beitrag #3
RE: Timer Richtig dastellen
danke dir das hat etwas klarheit gebracht.

ich hab grade ein anderes problem festgestellt er schreibt 08 sekunden wie er soll.

nur leider schreibt er wo die o ist nochmal die sekunden hin. spruch es stecht dann
:88 oder so mit der 0 hinter der ersten zahl

hast du da auch eine idee?

tut mir leid für mein leienhaftes wissen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2019, 22:40
Beitrag #4
RE: Timer Richtig dastellen
Das verstehe ich jetzt nicht. Gib mir mal ein einfaches Codebeispiel, wo das auftritt, ohne dass man erst einen Zeitbezug braucht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.02.2019, 22:50
Beitrag #5
RE: Timer Richtig dastellen
Tut mir leid ich weis nicht wie das geht

ich veruche es zu erklären

ich habe 4:15 minuten stehen dsa passt
dann hab ich 4:88 Stehen wo eigendlich 4:08 Stehen soll
der schreibt also die erste 8 in den speicher aber wieso?
hab ich da einen fehler in der else bedinung die einfach das if missachtet, und sich mit dem if ausführt?

ich hoffe du verstehst das mein dank ist dir sicher.Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.02.2019, 12:54
Beitrag #6
RE: Timer Richtig dastellen
Ich verstehe Dich immer noch nicht. Mal ein Beispiel:
Code:
void setup() {
  Serial.begin(115200);
  Serial.println("Start");
  byte std = 4, min = 8;
  char buf[20];
  sprintf(buf,"%02d:%02d",std,min);
  Serial.println(buf);
  sprintf(buf,"%02d",min);
  Serial.println(buf);
  min = 15;
  sprintf(buf,"%02d",min);
  Serial.println(buf);
}
Da kommt auf dem seriellen Monitor raus:
Code:
Start
04:08
08
15
Alles so, wie es soll. Wenn es bei Dir anders ist, machst Du was falsch.
Dann zeige den kompletten Sketch und schreibe dazu, wo welcher Fehler auftritt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  warum läuft der Timer 6min und nicht 5? Peff 27 1.808 19.06.2021 19:39
Letzter Beitrag: Tommy56
  MoBaTools: Buttons am MCP23017 und Timer Nordlicht 60 5.065 27.04.2021 10:38
Letzter Beitrag: Tommy56
  Timer läuft nicht so, wie ich wohl will Raging Ender 4 825 04.01.2021 19:26
Letzter Beitrag: Raging Ender
  HC-SR04 Alarmsketch läuft nicht richtig auf Digispark tapsi 9 1.204 31.12.2020 13:53
Letzter Beitrag: hotsystems
  Probleme mit millis(); timer basteldin 3 1.403 01.09.2020 19:04
Letzter Beitrag: basteldin
  strcmp funktioniert nicht richtig Cano 7 1.785 25.04.2020 10:47
Letzter Beitrag: Cano
  Möchte einen 12V DC Motor mit H-Brücke, Abbremsen und Timer betreiben! Tibor 4 1.340 24.01.2020 10:58
Letzter Beitrag: hotsystems
  Wie setze ich Verzögerungen richtig ein? DO3GE 22 4.514 26.12.2019 17:37
Letzter Beitrag: DO3GE
  Multi-Timer-Class Gorathan 7 1.844 03.12.2019 11:26
Letzter Beitrag: Gorathan
  Wie die HW-Seriellen des Mega richtig einsetzen? DO3GE 2 1.286 02.12.2019 14:53
Letzter Beitrag: DO3GE

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste