Ankieta: Jaki system operacyjnym preferujesz
Ankieta jest zamknięta.
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]

Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie ARM, nauka, środowiska programistyczne IDE
SP5FCS Offline
Adam
*****

Liczba postów: 1,071
Dołączył: 02-02-2009
Post: #110
RE: 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
İmage

.zip  z003.zip (Rozmiar: 158.19 KB / Pobrań: 410)

73 Adam
23-07-2016 17:52
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Programowanie ARM, nauka, środowiska programistyczne IDE - SP5FCS - 23-07-2016 17:52

Skocz do:


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