Keresés

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

  • Janos250

    őstag

    válasz Xpod #8402 üzenetére

    taskDISABLE_INTERRUPTS();
    Az ESP32 rendszere a freeRTOS op. rendszeren fut, annak a függyvényei is használhatók.
    Azt csinálja, ami a neve, letiltja az interruptot, a taskENABLE_INTERRUPTS() pedig újra engedélyezi.
    Ezeket próbáld a saját programodba is betenni a szalagra írás előtt és után. Csak próba, mert lehet, hogy nálad a könyvtár dolgaival összeakaszkodik.

    A loop automatikusan a core1-en indul, ha nem rakod át. A WiFi kezelés a core0-n van, elvileg nem zavarhatják egymást.
    A szalagra kiküldendő adatok kiszámítását, meg bármi járulékos dolgot tedd a core0-ra. Beteszed egy függvénybe, és azt pl. ehhez hasonlóan hívod meg.
    Így lehet pl. egy "lightShowInCore0Code" nevű függvényt úgy meghívni a loopban, hogy ne a core1-en, hanem a core0-n fusson:

    xTaskCreatePinnedToCore(
    lightShowInCore0Code, /* Task function. */
    "lightShow", /* String with name of task. */
    1000, /* Stack size in words. */
    NULL, /* Parameter passed as input of the task */
    3, /* Priority of the task. */
    &lightShowInCore0, /* Task handle. */
    0 /* core */
    );

    uint8_t:
    "uint8_t lövésem sincs mi, gondolom egy közvetlen lenyúlás egy hardverközelibb szintre"
    Nem.
    A különböző rendszerekre való könnyebb átvitel érdekében a különböző hosszúságú egészeket célszerű így deklarálni, hogy

    int8_t : előjeles 8 bites egész
    uint8_t : előjel nélküli 8 bites egész, vagyis 0..255 közötti az értéke.
    A 8 helyett állhat 16, vagy 32 is, attól függően, mekkora kell.

    Én lightShowInCore0Code-nak neveztem el azt a függvényt, ami az adatokat kiszámolja, tehát ami nevet adsz a függvényednek, azt írd a helyére. A többi maradhat változatlanul.

    void lightShowInCore0Code( void* parameter) {


    // Ide kerül a tényleges program, amire azt akarod, hogy a core0-n fusson.


    vTaskDelete(NULL); // ezt ne felejtsd el beírni a függvényed utolsó sorába.

    } ;

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

Hirdetés