Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 cze 2025, o 03:44


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 7 mar 2017, o 00:16 
    Offline
    Użytkownik

    Dołączył(a): 27 sty 2015
    Posty: 61
    Pomógł: 0

    Witam wszystkich

    Najprościej ujmując próbuje migać diodą ustawiając odpowiednie rejestry, niby wszystko działa, ale tylko dla portu PB1.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Jak zmieniam ODR1 na np. ODR2 lub inny to dioda nie działa (oczywiście po przepięciu kabelków na płytce do innego pinu), problem w tym, że nie mam pomysłu gdzie robię błąd.
    Może wy mi coś doradzicie? :D
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 mar 2017, o 10:16 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lis 2012
    Posty: 298
    Pomógł: 13

    Po pierwsze masz chyba włączone wyjście typu Open-drain a nie Push-pull. Sprawdź w dokumentacji.
    Zamiast zapisu GPIO_ODR_ODR1 możesz też użyć GPIO_Pin_1 - choć to nie powinno nic zmienić, bo ostatecznie to dokładnie to samo.
    Sprawdź połączenia wszystkiego, schemat, bo to dziwnie wygląda.
    Widzę, że przerabiasz poradnik szczywronka. Dobrze robisz :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 mar 2017, o 18:47 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    bastik napisał(a):
    ...
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    ...


    Oj tak nie rób, bo kiedyś będziesz szukał błędów. Jak już, to tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    A dlatego, że są tam jeszcze inne bity odpowiedzialne za włączanie peryferiów. Co się stanie jak inne bity będą wcześniej przez jakąś funkcję ustawione ?
    Co prawda w tym przykładzie nie ma to znaczenia, bo APB2ENR domyślnie po resecie ma wartość 0.

    Ustawiając stan na pinach portu można robić to za pomocą rejestrów BSRR i BRR
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    bastik napisał(a):
    ....Jak zmieniam ODR1 na np. ODR2 lub inny to dioda nie działa (oczywiście po przepięciu kabelków na płytce do innego pinu)....


    I nie ma prawa dzialac. Musisz zmienić jeszcze konfigurację pinu w rejestrze CRL, CRH, na ten, którego będziesz używał....
    Domyślnie porty po resecie są ustawione jako pływające wejścia. Wpisując więc do rejestru ODR wartość dla innego pinu, bez wcześniejszej zmiany konfiguracji dla tego pinu, nie uzyskasz tego co chcesz.

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 mar 2017, o 23:43 
    Offline
    Użytkownik

    Dołączył(a): 27 sty 2015
    Posty: 61
    Pomógł: 0

    zoom nie wiem ile mi zajmie przerobienie tego poradnika w takim tempie ;)
    gizmo5418 Nie wiem czy dobrze rozumiem, ale tak w RM pisze CNFy i MODEy gdzie y to numer bitu od 0 do 7.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Dioda miga na pinie 2, natomiast jak zmienię wszędzie na 3 lub więcej to dalej cisza, tak, więc jakoś źle rozumiem informacje z RM. :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 mar 2017, o 00:31 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Witaj,

    Wklej tu cały kod, bo z takich skrawków będziemy w nieskończoność dyskutować.
    Ustaw sobie np miganie na PB3 i pokaż jak to zrobiłeś. Pokaż też ten kod, który Ci mruga na innym pinie.

    Zaglądnij jeszcze na schemat Twojego Nucleo. Ja widzę, że PB3 podpięte jest do wbudowanego programatora - linia SWO.
    PB2 jest wolne, więc Ci mruga


    Autor postu otrzymał pochwałę

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2017, o 17:32 
    Offline
    Użytkownik

    Dołączył(a): 27 sty 2015
    Posty: 61
    Pomógł: 0

    Zgadza się wszystko działa, PB3 i PB4 trzeba by przeciążyć żeby można na nich migać diodami. Ja korzystałem z pinout-u narysowanego na pudełku od Nucleo i to mój błąd :D. Poniżej kod dla dwóch diod.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO