Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STM32F0 Discovery - redefinicja PINów

01 Lip 2012 18:18 1661 8
  • Poziom 8  
    Witam ponownie.

    Czy próbował ktoś zdefiniować PIN dla BUTTON_USER inny niż przycisk na płytce?

    Dla domyślenego
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wszystko idzie jak należy, rozpoznaje czy przycisk jest wciśniety tylko na chwilę, czy na ponad sekundę (mam funkcję która wywoluje coś w rodzaju menu jeśli przytrzymamy przycisk dłużej), z założenia kolejne 'przytrzymaj 1 sec' przechodzą do kolejnej pozycji menu. Przejście do kolejnej pozycji menu sygnalizują LEDy. Po osiągnieciu ostatniej pozycj menu przechodzimy do pierwszej, klasyczna pętla...


    Problem zaczyna się gdy próbuje przedefiniować pin przycisku albo zdefiniować nowy. Bez względu który port/pin wybiore zachowuje się tak jakby button był cały czas wciśnięty. Przełączniki sprawdzone, zwarcia nie ma i kicha - płytka interface działa bez problemu z STM32F103, więc raczej nie tu problem (przeniosłem cały kod z STM32F103 - redukcja kosztów- i tylko przyciski interface sprawiają problem). Zresztą nawet jak pin jest nie podłączony do niczego efekt jest taki sam. Jak testuje czy jest wciśnięty button na niezdefiniowanym pinie to rezultat oczywiście jest jakby nie był wciśnięty

    Problem mam tylko dla IN, OUT mogę definiiować jak chce (w ramach wolnych pinów oczywiście) i nie ma żadnego problemu.

    Próbował ktoś z Was definiować 'zewnętrzne' przyciski dla STM32F0 Discovery?

    Przeczytałem całą dokumentacje ale nic tam mi się nie objawiło...


    Konstruktywnie proszę...
  • Poziom 8  
    Kod: c
    Zaloguj się, aby zobaczyć kod


    przerwanie wyłączyłem: BUTTON_MODE_EXTI = 0
  • Specjalista - Mikrokontrolery
    No i takie coś jak masz pokazane wyżej nie działa? Pokaż najprostszy przypadek który nie działa, byle kompletny (wraz z pełną konfiguracją).

    4\/3!!
  • Poziom 8  
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Działa tylko dla PA0 :/

    Dodano po 27 [minuty]:

    Zresztą jakikolwiek przykład dla tej płytki któy używa user button zachowuje sie dokładnie tak samo :(
  • Poziom 26  
    Jak nie masz zewnętrznych rezystorów podciągających na liniach przycisku to:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    jest złą konfiguracją.
  • Poziom 8  
    Mam rezystory, tyle że nie dokładnie w/g spec.
    próbowałem tez z GPIO_PuPd_DOWN i GPIO_PuPd_UP
    Jutro podmienie rezystorki, jak nie to sprawdze z inną płytką :)

    Dodano po 6 [minuty]:

    Poza tym, ze schematu wynika że póki przecisk nie jest ON to pin nie jest do niczego podłączony, więc raczej nie tędy droga...
  • Poziom 26  
    Ale pin zawsze musi być do czegoś podłączony. Może coś pomieszałeś. Jak chcesz tak jak USER_BUTTON to przycisk ma być włączony pomiędzy VDD a pin, a rezystor pomiędzy pin a GND. Sprawdź omomierzem przycisk, bo zwykle 2 piny są zwarte na stałe i najlepiej podłączać się po przekątnej przycisku.
  • Poziom 8  
    Zgadza się pokręciłem, ale tylko na forum, piny są podłączone.
    Problem ył chyba w złych wartościach rezystorów, użyłem płytki ze switchami z innej dev. board. Po wymianie resystorów na zgodne ze spec. wszystko jest OK...

    Problem rozwiązany, ale pewnie jeszcze tu wpadne ;)

    H.

    P.S.
    moje przyciski mają tylko dwa piny, za to ie mają przekątnej ;) Pierwsze co sprawdziłem to czy nie ma zwarcia :)