Wpis z mikrobloga

Hej jak macie rozwiązane takie sytuacje gdy mikrokontroler wykonuje jakieś zadanie, które trwa np. 30 sekund, przez co główna pętla programu jest zablokowana przez to właśnie zadanie, a chcielibyście np. zmienić godzinę na wyświetlaczu? Myślałem nad implementacją jakiegoś prostego schedulera, który "żonglowałby procesami" dając, złudzenie pracy równoległej. Coś podobnego jak np. w FreeRtos.

http://www.freertos.org/implementation/a00016.html

#programowanie #elektronika #avr #atmega
  • 30
@pepepanpatryk: w przerwanie wrzucasz co najwyżej flagę że należy zaktualizować wyświetlacz. Nie można aktualizować żadnego LCD w przerwaniu. Możesz to zrobić za to inaczej, jeżeli np uC steruje przez 30s silniczkiem to to jest kupa czasu, żeby pętla main mogła obrócić. Musisz zrobić prostą maszynę stanów, np silnik ma wyknać 5 kroków w przód, jeden w tył i koniec. To robisz listę kroków, wykonujesz krok, przechodzisz np do aktualizacji wyświetlacza, znów