Pętla w pętli EEPROM - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Pętla w pętli EEPROM (/watek-p%C4%99tla-w-p%C4%99tli-eeprom) Strony:
1
2
|
RE: Pętla w pętli EEPROM - kaczakat - 18-03-2023 Pokaż kod programu, z którym pracujesz. Jest oczywiste, że to tak będzie działać, ale robisz jakiś błąd. To co pokazałeś w poście #7 to jakieś bzdury i to nie ma prawa zadziałać, gdzie byś tego nie umieścił. Przykładowy kod w symulatorze: https://wokwi.com/projects/359485317908749313 RE: Pętla w pętli EEPROM - xaitras - 18-03-2023 Ok bo już tracę cierpliwość do eepromu Bardzo doceniam to, że chcecie mi pomóc ale ja najwyraźniej dalej czegoś nie kapuję. Tak zapisuję pierwszy kod: Kod: void save_rfid(){ Rozumiem że drugi muszę zapisać na pozycji od 9 do 17 ?? StrUID to już przetworzony String. Tak odczytuję eeprom: Kod: void read_rfid() A tutaj się to pojawia: Kod: if (header.indexOf("zmien_1") >= 0) { Problem przy odczycie jest taki, że przy wartości j<32 restartuje się esp. Jak zmienię na 1 odczytuje pierwszy rekord czyli od 0 do 8. Jak zmienię na j<2 to odczytuje krzaki i końcówkę kodu rfid. Powyżej tych wartości -> restart. Ręce mi opadają. Czy ktoś może mi o wytłumaczyć co robię źle? W emulatorze wygląda tak: https://wokwi.com/projects/359564767744621569 RE: Pętla w pętli EEPROM - kaczakat - 19-03-2023 Przede wszystkim nie rób testów na EEPROM w loop, ręka Ci się omsknie i procek do kosza. Wiem, że przesadzam, ale Eeprom można zapisywać ograniczoną ilość razy. Oczywiście symulatora to nie dotyczy. Zapisujesz 8 bajtów, a odczytujesz 256, to bez sensu. i oraz j były do tego by ustalić adres EEPROM od 0 do 255, gdy odczytujesz cały EEPROM, a ty sobie tak samo wstawiasz j do indexu swojego stringa, który ma wartość tylko od 0 do 8. Masz odczytać 8 bajtów, wstawić do 8 bajtów w swoim stringu, wydrukować, potem powtórzyć. A ty jedziesz sobie po komórkach pamięci 248 bajtów za swoją tablicę, za każdym z 32 dwóch razy. Mieszasz poza tym stringi i c stringi, przecież ten 12345678 też może być c stringiem, czyli tablicą char. Kod: #include <EEPROM.h> Wynik: Kod: 12345678 RE: Pętla w pętli EEPROM - xaitras - 20-03-2023 Dzięki wam wszystkim za pomoc. Trochę mi się rozjaśniło Wychodzi na to, że to co dostaję w StrUID jest wszystkiemu winne. Muszę zmodyfikować program i będzie ok. Tylko czasu brak... |