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
  Timer Sketch für OLED SSD1331 Talon 20 365 17.02.2019 10:48
Letzter Beitrag: Tommy56
Sad Neuling verzweifelt braucht Hilfe delay durch timer ersetzen Lois 1 274 06.02.2019 16:15
Letzter Beitrag: Tommy56
  Timer auf einzelnen PIN setzen? ardufan01 16 742 21.01.2019 22:24
Letzter Beitrag: MicroBahner
  Problem mit Displayanzeige LCD2004 bzw. nicht Richtig magnum1795 39 1.500 18.12.2018 08:15
Letzter Beitrag: magnum1795
  Timer Jack 9 1.789 22.05.2018 08:53
Letzter Beitrag: Jack
  Rotaryencoder funktioniert nicht richtig 123clever 19 2.392 20.02.2018 22:22
Letzter Beitrag: rpt007
  timer Mega 2560 4x tone Output see 6 2.640 11.01.2018 20:11
Letzter Beitrag: Tommy56
  Timer 0 Mathias 8 1.797 02.12.2017 17:26
Letzter Beitrag: MicroBahner
  Timer lernen AnjinSan 14 2.265 26.06.2017 13:25
Letzter Beitrag: Tommy56
  Münzeinwurf mit Timer KBLc 11 2.118 26.04.2017 21:21
Letzter Beitrag: KBLc

Gehe zu:


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