Problém s polem

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
vit_janos
Příspěvky: 3
Registrován: 19 pro 2018, 08:31
Reputation: 0

Problém s polem

Příspěvek od vit_janos » 16 dub 2020, 19:57

Zdravím, chci se zeptat jestli někdo netuší kde by mohla být chyba. Chci na display vytisknout hodnotu času jako formátovaný řetězec, v projektu chci použít menu, takže používám knihovnu LiquidMenu. Pokud čas vytisknu jako ukazatel na pole, tak se čas sice zobrazí, ale neaktualizuje se, pokud jej ale vytisknu jako int, tak funguje správně.

Obrázek pro ilustraci: https://1drv.ms/u/s!AnhAwSYtzVWXkd1mSKoRLLgg66mKyg

Kód: Vybrat vše

#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
#include <LiquidMenu.h>
#include <Wire.h>

char* timebuf;                                    // Ukazatel na čas pro zobrazení na displej
char timebuffer[6] = "hh:mm";                     // Formátovaný string pro zobrazení času
DateTime datumCas;
int hodiny, minuty;

LiquidCrystal_I2C lcd(0x27, 16, 2);       // nastavení LCD addresy na 0x27 pro 16 znaků a 2 řádky
RTC_DS1307 DS1307;

LiquidLine casUvod(5, 0 , timebuf);
LiquidLine casInt(5, 1, hodiny,":", minuty);
LiquidScreen uvod3(casUvod, casInt);
LiquidMenu uvod(lcd);

void setup() {
  lcd.begin();                            // inicializace LCD
  lcd.backlight();                        // zapnutí podsvícení
  uvod.init();

  // This is the method used to add a screen object to the menu.
  uvod.add_screen(uvod3);
}

void loop() {
  datumCas = DS1307.now(); // načtení aktuálního času a data do proměnné datumCas
  datumCas.toString(timebuffer);
  //Serial.println(timebuffer);
  timebuf = (char*)timebuffer;
  hodiny = datumCas.hour();
  minuty = datumCas.minute();
  uvod.change_screen(uvod3);
  delay(5000);
}

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů