29-06-2019, 09:30
Cytat:Procesor jednocześnie tylko jedno zadanie na raz może wykonywać, żeby wykonać drugie zadanie musisz zwolnić/wstrzymać pierwsze.
Przestań, przecież nie o taki poziom chodzi. Zaraz zejdziemy do asemblera
PWL
Cytat:Procesor jednocześnie tylko jedno zadanie na raz może wykonywać, żeby wykonać drugie zadanie musisz zwolnić/wstrzymać pierwsze.
(29-06-2019, 09:30)PierwszyWolnyLogin napisał(a): [ -> ]W AVR czasem musiałem używać ASM, konkretnie w projekcie WS2812 via DMX. Innej opcji nie było, bo AVR gubił znaki z USART.Cytat:Procesor jednocześnie tylko jedno zadanie na raz może wykonywać, żeby wykonać drugie zadanie musisz zwolnić/wstrzymać pierwsze.Przestań, przecież nie o taki poziom chodzi. Zaraz zejdziemy do asemblera
(29-06-2019, 07:29)Jarewa0606 napisał(a): [ -> ]użyłeś dwie nie kończące się pętle to już twój zły tok rozumowania, bo pierwsza pętla nie pozwala uruchomić drugiej,Stać się ekspertem? Świadczą o tym wypowiedzi, np:
(29-06-2019, 07:29)Jarewa0606 napisał(a): [ -> ]W systemie FreeRTOS istnieje także możliwość pracy bez wywłaszczania W takim wypadku to aktualnie wykonywane zadanie decyduje kiedy chce oddać kontrolę schedulerowi i umożliwić realizację innego. Wymaga to większego zaangażowania programisty – musi on tak zaimplementować wszystkie zadania, aby każde z nich otrzymało odpowiednią ilość czasu procesora.czy
(29-06-2019, 07:29)Jarewa0606 napisał(a): [ -> ]Kawałek kodu z biblioteki esp32 ROTS
Kod:unsigned long IRAM_ATTR millis()
{
return (unsigned long) (esp_timer_get_time() / 1000ULL);
}
void delay(uint32_t ms)
{
vTaskDelay(ms / portTICK_PERIOD_MS);
}
(29-06-2019, 10:02)es2... napisał(a): [ -> ]PS
W ogóle kiedykolwiek używałeś DMA? Np na Z-80? Wiesz jak to działa? Na ile spowalnia CPU?
(29-06-2019, 11:26)PierwszyWolnyLogin napisał(a): [ -> ]Zauważyłem JEŁOPIE, że nie masz pojęcia o uC. Tylko jakieś zabawkowe AVR i Arduino IDE.(29-06-2019, 10:02)es2... napisał(a): [ -> ]W ogóle kiedykolwiek używałeś DMA? Np na Z-80? Wiesz jak to działa? Na ile spowalnia CPU?Zauważyłeś JEŁOPIE o czym jest ten wątek?
(29-06-2019, 11:26)PierwszyWolnyLogin napisał(a): [ -> ]a pewno nie o twoich problemach, nikogo one nie interesują!Problem to masz ty, próbując RTOS-em rozwiązać problem, który z dużą dozą prawdopodobieństwa można rozwiązać prościej ale trzeba zapomnieć o AVR i Arduino IDE za to zapoznać się z wielopoziomowym systemem przerwań (pewnie nie używałeś, ja tak: w Z-80 i pseudo na AVR, w ARM nie było potrzeby) i DMA.
(29-06-2019, 11:38)Jarewa0606 napisał(a): [ -> ]Dzis ma problem tylko z dwoma prostymi zadaniami, jak dojdą przerywania to dopiero głowa go zaboli od myślenia.Aby używac RTOS, trzeba dobrze znać kompilator, uC, biegle używać przerwań, DMA jak jest. Programy (bez RTOS) pisać bez delay itd, ipt o czym pisałem w swojej pierwszej wypowiedzi.
(29-06-2019, 12:03)Jarewa0606 napisał(a): [ -> ]Podpowiedz jak ugryźć rozmiar stosu dla zadania bez Deburgera?Bez debugera do roboty nie podchodzę ale dawano, dawno, temu, za górami, za lasami, debugerów nie było lub były bardzo drogie (np do Z-80 $4000 i to za PRL więc majątek). Jakoś trzeba było sobie radzić.