Keresés

Új hozzászólás Aktív témák

  • ecaddsell

    aktív tag

    válasz gyapo11 #12562 üzenetére

    ESP32
    #include "xtensa/core-macros.h"
    uint32_t start, stop;
    ...
    start = xthal_get_ccount();
      <kód amit mérni akarsz>
    stop = xthal_get_ccount();

    A különbséget meg kiírod soros porton, USB-n stb.

    Hiába mutatod meg a forrás valami programnak, ha a háttérben az interruptok viszik az időt, meg néha cache miss van a nagyobb kód miatt, ez lehet csak ESP32, vagy mondjuk STM32-nél meg pl. bus matrix hozzáférés korlát van (az STM32 bus matrixot érdemes kicsit megnézni, tanulságos, hogy működik egy modern MCU).
    A profilerek is tényleges futást mérnek és sok esetben egyszerűbb tickcount-ot nézni (ez majdnem mindenütt van) mint a toolokkal (ha van egyáltalán) küzdeni.

    Egyébként az iopin toggle is ugyanez. Az állapotváltás közzé teszed a kódot amit mérsz és szkópon vagy multiméteren nézed az eredményt. Itt is a HW bütykölés csupán a pin váltás nézése.

    De felőlem azt csinálsz amit akarsz, elég sok infót bedobtam már, lehet többiek tudnak olyan progiról amit keresel, nem hiszem, hogy olyan egyszerűen működik mint gondolod, legalábbis ha tényleg komoly időzítési kritériumok vannak.

  • Aryes

    nagyúr

    válasz gyapo11 #12562 üzenetére

    "én pl. a kapcsos zárójelet üres sorba teszem elöl-hátul. "
    :DDD

    Én miután Kínából egy csomó hamisított attiny85-öt kaptam, amik belül attiny12-k voltak, bosszantott a dolog, és beleástam magam az AVR assembly-ba (mert ram hiányában nem támogatja a C fordító) hogy tudjam őket valamire használni. Eléggé egyszerű és szerethető dolog, már írtam benne servo motor kezelést, serial kommunikációt is.
    úgyhogy ezentúl valószínű a nagyobb lapokhoz is fogom használni az assembly-t az időzítés-érzékeny dolgokra. Ha esetleg kérdésed lenne ezzel kapcsolatban, talán tudok segíteni.

Új hozzászólás Aktív témák