Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'C/C++'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona


TempX

Znaleziono 4 wyniki

  1. Cześć. Piszę program obsługujący czujniki, gdzie dane są odbierane za pomocą funkcji espnow a następnie wysyłane ze stacji bazowej na serwer RemoteMe. Działa to tak że po odebraniu danych z czujnika, stacja bazowa przełącza się w tryb WIFISTA, łączy z serwerem RemoteMe i odsyła dane. Przełączanie trybów pracy realizuję w taki sposób że po odebraniu danych z czujnika, zapisuję je do pamięci RTC a następnie resetuję ESP aby po resecie znów mógł działać jako stacja. Ogólnie to działa elegancko jednak pewna rzecz nie daje mi spokoju: jest struktura do której zapisuję lub czytam z niej typedef struct { char name[SIZENAMETAB]; // nazwa czujnika float temp; // temperatura float press; // cisnienie int humm; // wilgotnosc uint16_t vbat; // U zas czujnika uint16_t timeToRestart; // czas do nast wysylki danych bool okno; // okno 0 -> zamkniete, 1->otwrte } readNow_t; typedef struct { readNow_t data; uint8_t stat; // status co ma sie dziac po resecie } sysMem_t; sysMem_t g_structData; Oraz kluczowe miejsce gdzie następuje błąd: void OnDataRecv(unsigned char *mac, unsigned char *incomingData, unsigned char len) { // dane z czujnikow kopiowanie do pamieci rtc i restart g_structData.stat = 1; // przy nastepnym resecie uruchom jako stacja memcpy(&g_structData.data, incomingData, sizeof(readNow_t)); // kopiowanie do struktury system_rtc_mem_write(RTCSTARTADRESS, &g_structData, sizeof(sysMem_t)); // kopiowanie do pamieci rtc // digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // test Serial.println("Nowe dane"); ESP.restart(); } błąd polega na tym że jakby następowało przeciążenie stosu? nie bardzo rozumiem te komunikaty wygląda to tak: --------------- CUT HERE FOR EXCEPTION DECODER --------------- Exception (28): epc1=0x4020757f epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000 >>>stack>>> ctx: cont sp: 3ffffdf0 end: 3fffffc0 offset: 0190 3fffff80: 00000000 00000000 00000001 4010017c 3fffff90: 3fffdad0 00000000 3ffee618 4010019d 3fffffa0: 3fffdad0 00000000 3ffee618 402057d4 3fffffb0: feefeffe feefeffe 3ffe84ec 40100cdd <<<stack<<< --------------- CUT HERE FOR EXCEPTION DECODER --------------- ets Jan 8 2013,rst cause:2, boot mode:(3,7) load 0x4010f000, len 3584, room 16 tail 0 chksum 0xb0 csum 0xb0 v2843a5ac ~ld Ten system działa, jednak to mi się nie bardzo podoba, czuję że gdzieś robię błąd podczas kopiowania do pamięci RTC.
  2. Dzień dobry, Potrzebuję wyciągnąć informacje z pliku Midi ( numer, początek i długość dźwięku) formatu 0 których będę potem używał do sterowania arduino. Dane będą następnie przesyłane do tablicy z której arduino będzie pobierać informacje o pozycji. Jestem początkujący , a to mój pierwszy wpis proszę o wyrozumiałość 😉
  3. Hej! Właśnie się natknąłem na taki głupi problem i... a co tu dużo mówić, opiszę. Jest sobie jakaś makrodefinicja, powiedzmy: #define ILOSC 16 Jest sobie literał w stylu: const char PROGMEM napis[]="Wpisz liczbę od zera do " STRINGIFY(ILOSC-1); Pytanie: jak skonstruować makro STRINGIFY aby zwróciło w tym przypadku "15"? Najprostsza definicja: #define STRINGIFY(x) #x tworzy napis "Wpisz liczbę od zera do ILOSC-1" Trochę bardziej skomplikowany (z dokumentacji GCC): #define STRINGIFY1(x) #x #define STRINGIFY(x) STRINGIFY1(x) daje w efekcie: "Wpisz liczbę od zera do 16-1" Pytanie: jest taka możliwość żeby otrzymać string "Wpisz liczbę od zera do 15"? Przypominam, że to ma być literał (czyli wszelkie zabawy z itoa czy sprintf odpadają). Nie interesują mnie inne kompilatory poza GCC. Na razie zrobiłem protezę w stylu: #define STRINGIFY1(x) #x #define STRINGIFY(x) STRINGIFY1(x) #define MAKSIMUM 15 #define ILOSC (MAKSIMUM+1) const char PROGMEM napis[] = "Wpisz liczbę od zera do " STRINGIFY(MAKSIMUM); ale strasznie mi się nie podoba, fujasta jakaś taka 😞 @Elvis Ty się najlepiej znasz na C, powiedz czego nie wiem?
  4. W terminalu daję komendę sudo apt-get install eclipse-cdt g++ Beż błędu instaluje się Eclipse oraz C++. Gdy wpisuję po wywołaniu Eclipse program niby kompiluje bo nie wykazuje błędu ale jak przechodzę do debugera daje komunikat o braku pliku bin. Co może być przyczyną?
×
×
  • 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.