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



Teraz jest 28 mar 2024, o 16:15


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: 302
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: 302
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 ]
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 4 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