Ankieta: Jaki system operacyjnym preferujesz
Nie posiadasz uprawnień, aby oddać głos w tej ankiecie.
Windows
60.78%
31 60.78%
Linux
31.37%
16 31.37%
MAC/OS
7.84%
4 7.84%
Inny
0%
0 0%
Razem 51 głosów 100%
*) odpowiedź wybrana przez Ciebie [Wyniki ankiety]

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
Podstawowym celem zadania nr. 1 było nauczenie się podstaw konfiguracji pinów portów GPIO. Poznaliśmy kod do ustawienia pinów jako wyścia do sterowania LED-ów oraz jako wejście do odczytu stanu klawisza BUTTON.

Zadanie nr.3 obsługa encodera

Kolejnym etapem poznawania konfiguracji pinów będzie poznanie sposobu odczytu stanu encodera. Piny do których podłączony jest nasz enkoder (PG2, PG3) są domyślnie ustawione w tryb INPUT, należy dodatkowo włączyć rezystory podciągające do plusa zasilania (PUPD_UP). Aby obsługa ekcodera była szybka, prosta i abyśmy nie gubili impulsów zrobimy to z wykorzystaniem systemu przerwań. Każdy pin może generować zewnętrzne przerwania sprzętowe EXTIx, np. pin encodera GPIO_G2 będzie generował przerwanie EXTI2. Rozpoznanie kierunku obrotu encodera jest zrobione w kodzie obsługi przerwania. Zmienna [ int8_t encoder_counter ] zawiera ilość odczytanych impulsów, wartość dodatnia to obrót w prawo, wartość ujemna obrót w lewo.
Na podstawie obrotu enkodera jest modyfikowany okresu przełączania zielonej diody w przedziale 20...2000ms. Obracając encoder w lewo zielona dioda mruga coraz szybciej a w prawo coraz wolniej. Jeśli mamy odwrotnie należy zamienić wejścia A, B encodera. Wciśnięcie niebieskiego klawisza przywraca okres diody do wartości początkowej 500ms.

W zadaniu mamy wydzielone pliki z funkcjami do konfiguracji pinów ( f4_cmsis_gpio.h, f4_cmsis_gpio.c ), trzy funkcje do ustawiania pojedynczy pinów oraz trzy do jednoczesnej konfiguracji wielu pinów na tym samym porcie. Takie podejście jest moim zdaniem najbardziej uniwersalne.

W załączniku paczka z plikami do zadania nr. 3
Na zdjęciu podłączenie encodera do modułu DiskoveryF429 (GND-czarny, PG2-żółty, PG3-zielony). Bezpośrednio do wejść encodera a masą przylutowane są dwa kondensatory ceramiczne po 10nF do tłumienia drgań styków.



Załączone pliki Miniatury
   

.zip   z003.zip (Rozmiar: 158.19 KB / Pobrań: 677)
73 Adam
Odpowiedz


Wiadomości w tym wątku

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości