Hirdetés
- iPhone topik
- Megérkezett a Google Pixel 7 és 7 Pro
- Bekerül az Apple Pay és Google Pay a Budapest GO alkalmazásba
- Honor 200 Pro - mobilportré
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 - végre van kicsi!
- Okosóra és okoskiegészítő topik
- Honor Magic6 Pro - kör közepén számok
- Samsung Galaxy Ring - gyűrű-kúra
- Samsung Galaxy S23 Ultra - non plus ultra
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Panhard
tag
válasz
Janos250
#7790
üzenetére
Köszi a részletes magyarázatot.
Azt próbáltam még, hogy ha 1-nél magasabb prioritáson van a task, akkor el sem indul. Nem tudom miért. De mindegy, így most jól működik. Kicsit átvariáltam úgy, hogy az időkritikus feladatokat az alap loop-ba tettem, ami core1-en fut, minden mást az általam létrehozott loop1-be, ami core0. -
Panhard
tag
válasz
Panhard
#7787
üzenetére
Szerintem nem is az volt a baja a kutyának, hogy nem tudott a függvénytől futni a második task, hanem csak annyi, hogy nem csinál semmit 5mp-ig az első. Így néz ki a programban a task kezelés:
xTaskCreatePinnedToCore(loop1, "loop1", 4096, NULL, 1, NULL, 1);
xTaskCreatePinnedToCore(loop2, "loop2", 4096, NULL, 1, NULL, 0);
}
//***********************************************************************************************************
void loop() {
}
//***********************************************************************************************************
void loop1(void *pvParameters) {
while (1) {
gps();
}
}
//***********************************************************************************************************
void loop2(void *pvParameters) {
while (1) {
temp_millis = millis();
if(temp_millis>temp_millis_1 ) { temp_millis_1 = temp_millis+2000; meghiv(); }
}
}
//***********************************************************************************************************Ami fontos, hogy a gps függvénynek minden ciklusban hívódnia kell a loop1-ben, az nem állhat meg, mert akkor nem tudja beolvasni a gps vevőt a serial porton.
Minden más programrész a loop2-ben van, aminél nem számít, ha le is lassul a ciklusidő pár másodpercre. Ott amúgy is 2másodpercenként hívom meg a meghív függvényt. -
Panhard
tag
válasz
Janos250
#7786
üzenetére
Csak akkor azt nem értem, hogy miért fogja le a másik taskot? Összesen két task van beállítva, az egyik a core0-án, a másik a core1-en. Elvileg teljesen függetlennek kellene lenniük egymástól. Ha például az egyiket leállítom egy while(1);-el, a másiknak akkor is futnia kellene. Illetve fut is, de az miért baj a kutyának?
-
Panhard
tag
válasz
Janos250
#7784
üzenetére
Megoldódott. Az volt a baja, hogy az task üresjáratban megy valamikor több mint 5mp-ig. Ez egy do/while függvény, ebből nekem max 10mp után lép ki, ha addig nem jön válasz a szervertől. Ez így jó is. Betettem egy delay(1); késleltetést, így már csinál valamit, nem is indul be a task wdt.
-
Panhard
tag
Sziasztok!
Tudtok abban segíteni, ki lehet-e kapcsolni ESP32-ben a task watchdog-ot? Vagy növelni az idejét? Van egy függvényem, ami egy webszerveren lévő php fájl válaszát várja és ez valamikor több mint 5mp, ilyenkor "Task watchdog got triggered." hibaüzenetet kapom.
Próbáltam az sdkconfig fájlban módosítani az értéket 5mp-ről magasabbra, (CONFIG_TASK_WDT_TIMEOUT_S=20) és próbáltam kikapcsolni is, (CONFIG_TASK_WDT=) de ez nem volt hatással rá. Ugyanúgy 5mp után aktiválódik.
Ha az arduino probramban beincludolom a "esp_task_wdt.h" fájlt, és használom az abban lévő függvényeket, esp_task_wdt_feed() , esp_task_wdt_delete(), azok sincsenek hatással rá. Tudtok valami megoldást? Előre is köszönöm.
Új hozzászólás Aktív témák
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / RX 5700XT / 16GB DDR4 / 256 SSD + 2TB HDD
- Magyar menüs Delonghi Magnifica S cappuccino automata kávéfőző tejtartállyal
- SAMSUNG PM9E1 "9100 PRO" 2 TB M.2 NVME PCI-E 5.0 x4 - Új - 14.000-12.500 MBs - Eladó!
- Forza Horizon Xbox Limited Edition Controller Új! Bontatlan!!
- GAINWARD GeForce RTX 4070 Ghost 12GB GARANCIÁLIS, DOBOZZAL, SZÁMLÁVAL
- BESZÁMÍTÁS! ASUS B150M i5 6402P 8GB DDR4 500GB SSD GTX 1050 Ti 4GB Rampage SHIVA DeepCool 400W
- KARÁCSONYI BOMBA AKCIÓK! PSN, STEAM, UBISOFT CONNECT, EA APP, XBOX EREDETI KULCSOK 100% GARANCIA
- Felsőkategóriás AMD Gamer PC-Számítógép! Beszámítás! R7 9800X3D / 9070XT / 32GB DDR5 / 2TB SSD!
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- BESZÁMÍTÁS! Asus H370 i7 8700 16GB DDR4 512GB SSD RX 5600 XT 6GB Zalman S2 TG Cooler Master 650W
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest
Azt próbáltam még, hogy ha 1-nél magasabb prioritáson van a task, akkor el sem indul. Nem tudom miért. De mindegy, így most jól működik. Kicsit átvariáltam úgy, hogy az időkritikus feladatokat az alap loop-ba tettem, ami core1-en fut, minden mást az általam létrehozott loop1-be, ami core0.
ekkold

