Skocz do zawartości

Poprawne zrozumienie wskaźników


Mastodont

Pomocna odpowiedź

Dnia 5.08.2023 o 17:39, _LM_ napisał:

Wcześniej napisałeś:

Więc skoro silnik będzie w jakikolwiek sposób wyłączony to mikrokontroler powinien o tym wiedzieć, a skoro można to zunifikować to poszedłem tą drogą. 

 

Jeśli ten układ spełnia założenia to jak najbardziej się nadaje. Ale nadal nie rozumiem w jaki sposób sam tylko ACS ma tutaj cokolwiek zdziałać

 

Dnia 13.10.2022 o 07:27, ethanak napisał:

Jak najbardziej.

Proponuję w następnym etapie zapoznać się z funkcjami sprintf i printf - niesamowicie ułatwiają życie 🙂

np.:

printf("%x %p\n", a, &a);

 

Hej

Mam pytanie. Czytałem trochę o sprintf i printf. Czy w środowisku Arduino IDE można to zrobić jakoś ładnie w jednej linii?

Próbowałem, ale coś za duzo mi tego wychodzi. 

    char b[50];
    int c=40;
    sprintf(b,"jestem w arduino %d", c);
    Serial.println(b);

 

Link do komentarza
Share on other sites

1 godzinę temu, nebraska napisał:

Czy w środowisku Arduino IDE można to zrobić jakoś ładnie w jednej linii?

printf("jestem w arduino %d\r\n",c);

Z jedną uwagą: AVR-owe wersje (czyli wszelkie atmegi) nie mają predefiniowanego stdout == Serial, trzeba sobie dodać parę linijek:

 

int serial_putc(char c, FILE *)
{
    Serial.write(c);
    return c;
}

void setup()
{
    fdevopen(&serial_putc, 0);

Ładny przykład można znaleźć w pliku printf.h biblioteki RF24

 

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Poczytałem sobie o printf i sprint ale wdrożyć to do Arduino to druga strona medalu. Oczywiście przykład ethanak bardzo mi pomógł, ale chyba "wyważam otware drzwi" chociaż wiedza o printf i sprintf na pewno się przyda.

Postanowiłem zrobić to w jednej linii jak wcześniej chciałem robiąc coś takiego. Bo mam sporo zmiennych które wyświetlają wartosći i zamiast tak

Serial.print("Napięcie Baterii: ");

Serial.print(volt);

Serial.println("V");

zrobiłem w ten sposób:

Serial.println("Napiecie Baterii: " + String(volt) + "V \n" + "Temp: " + String(temp) + "°C \n" + "Wilgotność: " + String(humidity) + "% \n");

 

Link do komentarza
Share on other sites

(edytowany)

Ale żeś pokomplikował...

printf("Napięcie baterii %d mV\r\n", (int)(volt *1000.0));

To taki przykład dla voltów (printf na avr-ach nie potrafi wyświetlać floatów bez didatkowych manipulacji).

Jak będę w domu to napiszę więcej - pisanie kodu na komórce to nie jest dobry pomysł 🙂

Edytowano przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

Jak będę w domu to napiszę więcej - pisanie kodu na komórce to nie jest dobry pomysł 🙂

E tam dobrze ci idzie, żadnych błędów 😁 Urodzony programista. Ja na kompie tak nie napiszę 😁

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.