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



Teraz jest 26 lis 2024, o 05:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 10 cze 2015, o 11:34 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Hej W mojej Atmedze zabrakło portów Chcę dołączyć układ MPC23017, który może wspomóc dwoma 16bitowymi potami po i2c.
Znalazłem bibliotekę z Arduino obsługującą ten ekspander, jednak jest ona napisana w C++ Chcę przetłumaczyć tę bibliotekę dla kompilatora dla C Z tego co widzę to jest ona prosta ale jeśli mógłby ktoś wspomóc moje rozumowanie:

Na początek ten fragment z klasami


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


wydaje mi się że mogę uprościć bezkarnie usuwając klasy a pozostawiając same deklaracje jedna pod drugą?

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


którego kompilator nie toleruje wysypując "syntax error"


więc tutaj również usuwam klasę pozostawiając funkcję w tej postaci
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Powiedzcie tylko czy to wystarczy czy usunięcie atrybutów klas nie zemści się jakoś później w pracy biblioteki?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 cze 2015, o 12:43 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Tak zgadza się mam plik nagłówka i źródła. "Static" już dołączam. W sumie cały pierwszy kod to zawartość pliku nagłówka. W pliku źródłowym mam tylko funkcje. A mówiąc o konstruktorach, mówisz o tym co jest w argumentach funkcji? czy tak? Nie widziałem tam żadnych zmiennych do inicjalizowania więc wydaje mi się że powinno śmigać :) Wielkie dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 cze 2015, o 09:45 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Szanowni koledzy, byłbym wdzięczny za jeszcze trochę pomocy przy tłumaczeniu tej biblioteki.
Mam w swoim projekcie bibliotekę do obsługi TWI od Mirka i za jej pomocą chcę wykonywać tę transmisję.
W kodzie do obsługi MPC23017 mam taką oto funkcję:

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



i wyczuwam, że jest to coś w rodzaju Mirkowego TWI_read() Podobnie brzmi funkcja
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na czas dalszych rozwarzań przyjmijmy że można to tak zamienić.
I tak zamieniałem, aż do czasu napotkania takiej funkcji :

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


Chodzi o jej przedostatnią i ostatnią linijkę bitWrite(regValue,bit,pValue); writeRegister(regAddr,regValue); gdzie podaje się dwa i trzy argumenty: Adres bit i wartość . Kiedy porównać to do Mirkowej funkcji TWI_write, tam podaje się tylko jeden argument. Istnieje możliwość przekształcenia tych funkcji tak aby działały z Mirka biblioteką do TWI? Z tego co widzę to funkcja którą opisuję wyżej służy do odczytu i porównania stanu portów układu, i jestem pewny, że da się to zrealizować przy użyciu Mirkowego TWI, ale trochę wiedzy mi brakuje na temat tego co się w tych bibliotekach tak na prawdę dzieje, żeby móc samemu to przekształcić. Może ktoś rozjaśnić?

Cała biblioteka w C++ do obsługi układu znajduje się tu: https://github.com/adafruit/Adafruit-MC ... no-Library


Ech Widzę teraz, że funkcja writeRegister potrzebuje wartości i adresu a funkcja Mirka tylko jednej zmiennej o nazwie "bajt". W takim razie pytanie będzie brzmiało Skąd funkcja TWI_write od Mirka wie gdzie zapisać ten bajt? w znaczeniu pod jaki adres go skierować ?



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO