Zerowanie licznika impulsów przy resecie ESP32

iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

Patrzyłem w sieci i ten błąd się pojawia innym użytkownikom.
Ale - działa i to dobrze, więc na razie to zostawiam.

Patrzyłem na te zapisy i odczyty z FRAM i nie rozumiem, dlaczego skoro mam ustawiony FRAM_offset na 40, zapisy są wykonywane pod innymi adresami:

Code: Select all

Channel(5) value changed to 42 - 0x2A      // nowa wartość licznika
Send: [53 55 50 4C 41 15 98 00 00 00 67 00 00 00 0E 00 00 00 05 00 00 00 00 00 2A 00 00 00 00 00 00 00 ]
Send: [53 55 50 4C 41 ]
xWrote 8 bytes to storage at 55      // 0x37
xWrote 7 bytes to storage at 48      // 0x30

Zrzut z monitora portu:
 0x20: 0xBE 0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x53 0x55 0x50 0x4C 0x41 0x01 0x00 0x01 
 0x30: 0x03 0x08 0x00 0xC2 0x6C 0xC2 0x6C 0x2A 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 
Czyli:
pierwszy xWrote zapisuje 8 bajtów od adresu 55 (0x37), w tym nową wartość licznika (tu: 0x2A=42) i dodatkowe 7 bajtów, w sumie 8
drugi xWrote zapisuje wcześniej 7 bajtów od adresu 48.
A pod mój zadeklarowany offset 40 nic się nie zapisuje...
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

Coś się zapisało ;)
Tu już musiałby się @klew wypowiedzieć, co biblioteka zapisuje w pamięci.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

lukfud wrote: Mon Apr 15, 2024 9:34 am Coś się zapisało ;)
Tu już musiałby się @klew wypowiedzieć, co biblioteka zapisuje w pamięci.
Ważne, że się zapisało ;-)
Ale chodzi mi o to, dlaczego pod takim adresem, skoro FRAM Offeset ustawiłem na 40.
Wieczorem zmienię ten offset i zobaczę, czy i jak zapisy się przesuną we FRAM.
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

iM@rek wrote: Mon Apr 15, 2024 9:44 am
lukfud wrote: Mon Apr 15, 2024 9:34 am Coś się zapisało ;)
Tu już musiałby się @klew wypowiedzieć, co biblioteka zapisuje w pamięci.
Ważne, że się zapisało ;-)
Ale chodzi mi o to, dlaczego pod takim adresem, skoro FRAM Offeset ustawiłem na 40.
Wieczorem zmienię ten offset i zobaczę, czy i jak zapisy się przesuną we FRAM.
Po co Ci ten offset?
Jeśli ustawiłeś na 40, to od tego miejsca biblioteka zaczyna zapisywać. Przed stanem licznika zapisują się zapewne inne informacje.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
klew
Posts: 13913
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 138 times
Been thanked: 137 times

Post

Offset używa się, gdy np. od adresu 0 używasz pamięci dla jakichś innych danych i nie chcesz, aby Storage Ci to nadpisał.
Ogólnie struktra Storage jest taka, że tam jest najpierw trochę "metadanych" (słowo "SUPLA", wersja storage, info o tym jakie są sekcje itd). Same dane z liczników lądują zawsze dalej niż adres "40"
Najlepsze suple dla Twojego domu :mrgreen:
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

lukfud wrote: Mon Apr 15, 2024 9:54 am
iM@rek wrote: Mon Apr 15, 2024 9:44 am
lukfud wrote: Mon Apr 15, 2024 9:34 am Coś się zapisało ;)
Tu już musiałby się @klew wypowiedzieć, co biblioteka zapisuje w pamięci.
Ważne, że się zapisało ;-)
Ale chodzi mi o to, dlaczego pod takim adresem, skoro FRAM Offeset ustawiłem na 40.
Wieczorem zmienię ten offset i zobaczę, czy i jak zapisy się przesuną we FRAM.
Po co Ci ten offset?
Jeśli ustawiłeś na 40, to od tego miejsca biblioteka zaczyna zapisywać. Przed stanem licznika zapisują się zapewne inne informacje.
W sumie to po nic ;-).
Chodzi mi o to, że ustawiam offset na 40, a w pamięci zapisy są wykonywane na adresach niższych.
Wygląda na to, że ustawiany offset jest ignorowany, bo pod adresem 40 i wyżej są zera.
I tylko o to chciałem zapytać. Nie jest dla mnie istotne gdzie są zapisywane dane, ale skoro ustawiamy offset - to czemu nie jest brany pod uwagę przy zapisie. Albo - czego w tym nie rozumiem lub źle interpretuję.
Jeśli ktoś odpowie, że offset jest ignorowany, przyjmę to do wiadomości i tyle.
User avatar
klew
Posts: 13913
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 138 times
Been thanked: 137 times

Post

iM@rek wrote: Mon Apr 15, 2024 10:03 am W sumie to po nic ;-).
Chodzi mi o to, że ustawiam offset na 40, a w pamięci zapisy są wykonywane na adresach niższych.
Wygląda na to, że ustawiany offset jest ignorowany, bo pod adresem 40 i wyżej są zera.
I tylko o to chciałem zapytać. Nie jest dla mnie istotne gdzie są zapisywane dane, ale skoro ustawiamy offset - to czemu nie jest brany pod uwagę przy zapisie. Albo - czego w tym nie rozumiem lub źle interpretuję.
Jeśli ktoś odpowie, że offset jest ignorowany, przyjmę to do wiadomości i tyle.
Trochę nie rozumiem :)

Code: Select all

xWrote 8 bytes to storage at 55      // 0x37
xWrote 7 bytes to storage at 48      // 0x30
Widzę tu zapis do 48 i 55, czyli WYŻSZY niż 40. Offset to jest adres startowy. Od niego w górę powinien być robiony zapis.
Najlepsze suple dla Twojego domu :mrgreen:
iM@rek
Posts: 376
Joined: Thu Feb 09, 2023 1:25 pm

Post

klew wrote: Mon Apr 15, 2024 10:28 am
Trochę nie rozumiem :)

Code: Select all

xWrote 8 bytes to storage at 55      // 0x37
xWrote 7 bytes to storage at 48      // 0x30
Widzę tu zapis do 48 i 55, czyli WYŻSZY niż 40. Offset to jest adres startowy. Od niego w górę powinien być robiony zapis.
O rany...
Pomieszałem HEX i DEC...
Ten deklarowany offeset jest przecież podawany w DEC, czyli 40 -> 0x28 ;-)
Szkoda gadać, przepraszam... :? :roll:

Return to “Ogólna dyskusja”