Aktywne Wpisy
LuckyStrike +60
#chiny Przejechanie 10.5 tysiąca kilometrów kosztowało mnie po przeliczeniu: 695 złotych. https://en.leapmotor.com/C01-Excellent
A wy co? Nadal 15 letni VW od Turasa z Niemiec i ruska ropa od Obajtka kupiona z Indii? xD Nawet mi was nie żal. Nie zapraszam do dyskusji. #motoryzacja #bekazpodludzi #tosachiny
A wy co? Nadal 15 letni VW od Turasa z Niemiec i ruska ropa od Obajtka kupiona z Indii? xD Nawet mi was nie żal. Nie zapraszam do dyskusji. #motoryzacja #bekazpodludzi #tosachiny
brudny_boks +46
na protest rolników w samochodzie za 200k PLN, słaby to PR ( ͡° ͜ʖ ͡°)
#rolnictwo
#ekonomia
#motoryzacja
#rolnictwo
#ekonomia
#motoryzacja
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Potrzebuję weryfikacji czy dobrze myślę.
Kod macie tutaj:
https://pastebin.com/34QJ0GQS
A więc tak, defaultowo CPU esp8266 jest takowane zegarem 80MHz
A więc
1s -> 80 000 000 cykli CPU
1ms -> 80 000 cykli CPU
1us -> 80 cykli CPU
Do precyzyjnego odmierzania czasu wykorzystuję rejestr ccount, zawierający liczbę cykli procesora.
Załóżmy, że na magistrali muszę zrobić delay 10us, a więc 800 cykli procesora
Po uruchomieniu mojego kodu printowana jest informacja:
"Cycles diff: 815"
Tutaj macie disassembly funkcji: customdelayus https://pastebin.com/GRU8BbpG
Między linijką 24 a 34 widać instrukcje funkcji 'wait', jak widać są to 4 instrukcje.
Teraz moje pytanie - czy mogę założyć, że koszt funkcji 'wait' to 4 instrukcje -> ~15 cykli procesora?
Czy w takim razie przekazując parametr do funckji 'wait' powinienem odjąc te 15 cykli procsora aby mieć precyzyjny delay?
Czy robiąc READCCOUNT(cyclesend); nie powinienem od cycles_end odjąć jakiejś wartości? Mimo wszystko interesuje mnie koszt samego delaya, a samo pobranie wartości z tego rejestru również kosztuje jakieś cykle procesora.
Moje rozumowanie bazuje trochę na informacjach znalezionych w necie, ale linki, które tam znalazłem są albo niedostępne, albo brak precyzyjnego wytłumaczenia.
#embedded
Odliczanie czasu w sofcie jak w tle masz pracujące przerwania, inne wątki (np. od wi-fi, tcp/ip) będzie z góry skazane na losowe problemy.
https://www.analog.com/en/technical-articles/using-a-uart-to-implement-a-1wire-bus-master.html
ets_delay_us
, zobacz jak się zachowahttps://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/rmt.html
https://github.com/DavidAntliff/esp32-owb