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 9 cze 2025, o 06:27


    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 ] [ Zaznacz wszystko ]
    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