Endorfin35+
Kayıtsız Üye
- Katılım
- 1 Mayıs 2020
- Mesajlar
- 4,464
Esp32 üzerine arduino fremawork ile kod yazıyorum. Klasik wdt örneklerini sorunsuz bir şekilde çalıştırıyorum. Mainloop içinde wdt yi resetliyorum ve sıkıntısız çalışıyor.
Ancak task oluşturduğum zaman işler karışıyor. Tasklar içerisindede wdt yi resetlesemde wdt timer devreye giriyor. Süreler ile oynarak optimize etmeye çalıştım başarılı olamadım.
Bu işin mantığı nedir bilen varmı aramızda? Aslında benim ihtiyacım şöyle tasklardan birisi benim için kritik. Bu task içinde neredeyse hiç delay yok. Bir şekilde bu taskın sorunsuz çalıştığından emin olmak istiyorum. Mesela 200ms bir wdt süresi yeterli benim için ama diğer tasklarda uzun bekleme süreleri olabiliyor. Mesela lcd menu kodumda menu açıldığı zaman kodu while ile kitliyorum ya menuden çıkcak yada timeout olacakki tekrar loopuna dönsün.
Alternatif olarak şöyle birşey yaptım ama ne kadar doğru emin değilim. 200ms Hw timer kurdum. Sorunsuz olmasını istediğim task içinde timerı sürekli resetliyorum. Taşma olur ise espyi restart ediyorum ama bu wdt nin yerini tutarmı emin olamadım.
Ancak task oluşturduğum zaman işler karışıyor. Tasklar içerisindede wdt yi resetlesemde wdt timer devreye giriyor. Süreler ile oynarak optimize etmeye çalıştım başarılı olamadım.
Bu işin mantığı nedir bilen varmı aramızda? Aslında benim ihtiyacım şöyle tasklardan birisi benim için kritik. Bu task içinde neredeyse hiç delay yok. Bir şekilde bu taskın sorunsuz çalıştığından emin olmak istiyorum. Mesela 200ms bir wdt süresi yeterli benim için ama diğer tasklarda uzun bekleme süreleri olabiliyor. Mesela lcd menu kodumda menu açıldığı zaman kodu while ile kitliyorum ya menuden çıkcak yada timeout olacakki tekrar loopuna dönsün.
Alternatif olarak şöyle birşey yaptım ama ne kadar doğru emin değilim. 200ms Hw timer kurdum. Sorunsuz olmasını istediğim task içinde timerı sürekli resetliyorum. Taşma olur ise espyi restart ediyorum ama bu wdt nin yerini tutarmı emin olamadım.