wtorek, 18 maja 2021

Interfejsy jako jedna z technik tworzenia kodu w embedded - zajęcia praktyczne

Sztuką jest biegle opanować tworzenie modułów oprogramowania nadających się do wielokrotnego wykorzystania, które stanowią  budulec dla dużych i niezawodnych aplikacji. W przeciwieństwie do nowoczesnych języków obiektowych, język C nie ma zbyt wielu mechanizmów pozwalających łatwo tworzyć interfejsy programisty (API), a tym bardziej mechanizmów zachęcających do opracowywania takich interfejsów. Większość programistów C korzysta na co dzień z różnego rodzaju gotowych API i bibliotek je implementujących, ale względnie niewielu tworzy i udostępnia nowe API ogólnego przeznaczenia. 

sobota, 8 maja 2021

Maszyna stanów przyjaciel embedownika :)


Maszyna stanów skończonych to pojęcie abstrakcyjne ,  definiuje zachowanie systemów dynamicznych jako maszyny o  skończonej liczbie stanów i  skończonej liczbie przejść pomiędzy tymi stanami. Definicja ta wydaje się dość abstrakcyjna , ale lepszej chwilowo nie znalazłem :).  Maszyny stanów skończonych odgrywają bardzo ważną rolę w  programowaniu w szczególności w świecie mikrokontrolerów. Umożliwiają m.in panowanie nad rozbudowaną sekwencją zdarzeń w programie i zwiększają znacząco niezawodność kodu.  W wielu przypadkach maszyna stanów w połączeniu z przerwaniami może okazać się lepszym wyborem niż np. RTOS ,choć z drugiej strony nie w każdym przypadku maszyna stanów znajdzie zastosowanie. Bardzo powszechnym obecnie nurtem jest stosowanie maszyny stanów do nieblokującej obsługi interfejsów np.I2C, SPI, UART. W szczególności ten nurt możemy zaobserwować w bibliotekach Microchipa gdzie np. taki framework jak HARMONY "wypluwa" standardowo kod oparty o maszynę stanów. Ale i w MCC widzę , że maszyna stanów zaczyna być częstym gościem . Skoro producenci MCU opierają swoje biblioteki o maszynę stanów to znaczy, że coś w tym musi być  I dlatego warto temu zagadnieniu przyjrzeć się bliżej.

poniedziałek, 3 maja 2021

STM32G0 - EXTI , konfiguracja przerwania zewnętrznego.


Konfiguracja przerwania zewnętrznego w STM32G0 dla wybranego źródła może być nie lada wyzwaniem dla osoby , która po raz pierwszy zetknie się z tym zagadnieniem. STM pogmatwał tutaj trochę i przynajmniej na początku odczujemy dyskomfort konfigurując ten moduł. W artykule postaram się pokazać jak poprawnie skonfigurować wybrany pin do współpracy z przerwaniem zewnętrznym.