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



Teraz jest 22 gru 2024, o 21:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 24 wrz 2014, o 19:18 
Offline
Nowy

Dołączył(a): 24 wrz 2014
Posty: 2
Pomógł: 0

Witam
Jest to mój pierwszy post wiec witam i pozdrawiam wszystkich użytkowników.
Dwa zdania o mnie: Nie programowałem mikrokontrolerów, od 20 lat piszę w VB(C++ mnie nie zainteresował z powodu wcześniejszego poznania Basic'a na ZX-Spectrum) i w tym kierunku poszedłem, oczywiście programowanie to tylko moje hobby. Znam środowisko eclipse - od 2 lat piszę aplikacje na androida w eclipse.
Teraz konkrety.
Zakupiłem LPC1769 LPCXpresso Board do wykorzystania w sterowaniu drukarki 3D która buduję. Wybrałem tą płytkę ze względu na możliwość dowolnego sterowania in/out.
Na razie używam LPCXpresso(IDE), ale ze względu na ograniczenia docelowo przejdę na keplera.
LPCXpresso Board ma wbudowany LPC-Link, już wiem, że nie będę mógł go używać z keplerem (chociaż znalazłem stronę, gdzie jest opisane, że po zainstalowaniu Procesor Expert, LPCXpresso(IDE) jest unlimited)
Przeszedłem już blink led przy wykorzystaniu mbed, dodałem sterowanie wejściami i inne wyjścia(diody). Przy wykorzystaniu mbed jest to proste, bez grzebania w rejestrach timerach itd.
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Działało i się zepsuło, za dużo kombinowałem w workspace, za dużo bibliotek, wiec zainteresowałem się innymi przykładami - timery i ustawianie rejestrów.
W przykładowym programie/timer i inicjacja jednego wyjścia/ wszystko działa ok. Mam pytanie co oznacza ten kod:
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Z manuala wynika, że aby ustawić P0-22 na GPIO trzeba ustawić PINSEL1 bit 13 i 12.
Konkretnie, co to oznacza (~(3 << 12))
Moje domysły są takie, że wstawia od 12 bitu wartość 3 , czyli dwójkowo 11 - wiec ustawi 12 bit 1 i 13 bit 1.
Jeżeli jest tak, to aby ustawić P0-22 i P0-23 jako GPIO (P0-23 to 14 i 15 bit w PINSEL1) to trzeba zrobić w ten sposób?
Składnia: [ Pobierz ] [ Ukryj ]
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

15 to dwójkowo 1111, ustawi bity od 12 do 15?
Trochę byłoby to skomplikowane, ustawiać w ten sposób wszystkie potrzebne wyjścia i wejścia( jeszcze mode).
Proszę o odpowiedź/podpowiedź
Przepraszam za długi post, następne będą krótsze.
Pozdrawiam
marekF



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 20:21 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

marekF napisał(a):
Konkretnie, co to oznacza (~(3 << 12))

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

marekF napisał(a):
15 to dwójkowo 1111, ustawi bity od 12 do 15?

wyzeruje te bity
marekF napisał(a):
Trochę byłoby to skomplikowane, ustawiać w ten sposób wszystkie potrzebne wyjścia i wejścia( jeszcze mode).

Zapoznaj się z przykładem lpc1769_blink_led z tej strony: http://www.freddiechopin.info/pl/downlo ... -przyklady
Jest tam pokazane jak to elegancko zrobić.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 20:44 
Offline
Nowy

Dołączył(a): 24 wrz 2014
Posty: 2
Pomógł: 0

Super, dzięki za odpowiedź. Słyszałem o przesunięciu bitowym, teraz wiem jak to działa.
Myślałem że ustawia 1, nie znałem negacji w C++. A w manualu jest napisane ustawić 00.
Czy przesunięcie i wartość należy podać w systemie dziesiętnym, czy w hex?
Stronę frediego znam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 20:55 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

marekF napisał(a):
Czy przesunięcie i wartość należy podać w systemie dziesiętnym, czy w hex?

tutaj jest w systemie dziesiętnym
Wartości w hex poprzedza się 0x przykładowo:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

_________________
Dragonus Cracovus: Biomagia



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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