Skocz do zawartości

Wykorzystanie danych z innej funkcji


Pieterlpl

Pomocna odpowiedź

Witajcie. Mam mały problem, który jest z pewnością błahy do rozwiązania. Nie potrafię wykorzystać danych pomiarowych z 1 funkcji w 2 funkcji. Fragment kodu wygląda następująco:

void stanBaterii()
{
  float napiecie = analogRead(27) / 4096.0 * 7.17;
  float procent = (napiecie - 3.50)/0.007;
}

void ekran()
{
  display.setRotation(1);
  display.fillScreen(GxEPD_BLACK);
  display.setTextColor(GxEPD_WHITE);
  display.setTextSize(2);
  display.setCursor(0, 10);
  display.print("Bateria: ");
  display.print(napiecie);
  display.println(" V");
  display.print("Stan: ");
  display.print(procent, 0);
  display.println("%");
  display.update();
}

Wydaje mi się że deklaracja funkcji jako void sprawia tutaj problem. Zostawiając funkcje bez żadnego typu wywala zaś błąd co po części jest logiczne. Ale jak to ugryźć, żeby w funkcji ekran() znalazły się dane z funkcji stanBaterii() ?

 

Link do komentarza
Share on other sites

Zmień dostępność zmiennych. W tym momencie za każdym przebiegiem tworzysz nowe zmienne a stare wyrzucasz.

float napiecie = 0;
float procent = 0;
void stanBaterii()
{
  napiecie = analogRead(27) / 4096.0 * 7.17;
  procent = (napiecie - 3.50)/0.007;
}

void ekran()
{
  display.setRotation(1);
  display.fillScreen(GxEPD_BLACK);
  display.setTextColor(GxEPD_WHITE);
  display.setTextSize(2);
  display.setCursor(0, 10);
  display.print("Bateria: ");
  display.print(napiecie);
  display.println(" V");
  display.print("Stan: ");
  display.print(procent, 0);
  display.println("%");
  display.update();
}

Teraz są to zmienne dostępne globalnie (nie tylko w metodzie).

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.