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



Teraz jest 16 kwi 2024, o 07:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 25 lip 2018, o 21:09 
Offline
Użytkownik

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

Hej. Jako że widzę jak pewne egzemplarze DS3231 mają pewną odchyłkę dokładności, chciałem trochę pogrzebać w rejestrze starzenia się układu. Znalazłem taki kod w C++ dla arduino, jednak próbuję go przerobić na C. Wydaje się to łatwe, jednak nie do końca Pomóżcie mi zrozumieć co się tu dzieje i gdzie robię błąd.

Program w C++ wygląda tak:

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




Więc przy użyciu naszych (Mirka) funkcji napisałem coś takiego:




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



kompilator wywala warninga : passing argument 4 of 'TWI_read_buf' makes pointer from integer without a cast [enabled by default]
Tylko jak użyć wskaźnika skoro nie chcę otrzymać adresu tylko wartość rejestru spod adresu, który wskazałem we wcześniejszych argumentach?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 21:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Funkcja TWI oczekuje wskaźnika jako czwarty argument, więc musisz dodać operator pozyskiwania adresu &

------------------------ [ Dodano po: 1 minucie ]

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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 21:21 
Offline
Użytkownik

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

Rozumiem - Dziękuję !

A przy okazji Czemu adresy DS 3231 różnią się? Ja w Mirkowej bibliotece mam zdefiniowany adres
#define DS3231_ADDR 0xD0 //podstawowy adres DS3231
Natomiast w tej bibliotece jako adres DS'a mam
#define DS3231_ADDRESS 0x68 ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 21:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

Jarosław J napisał(a):
Rozumiem - Dziękuję !

A przy okazji Czemu adresy DS 3231 różnią się? Ja w Mirkowej bibliotece mam zdefiniowany adres
#define DS3231_ADDR 0xD0 //podstawowy adres DS3231
Natomiast w tej bibliotece jako adres DS'a mam
#define DS3231_ADDRESS 0x68 ?


Poczytaj o 7 i 8-śmio bitowych adresach TWI.
W skrócie Mirek używa 8 bit, 0xD0 >>1 = 0x68


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 21:44 
Offline
Użytkownik

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

Dziękuję !!! Czyli mogę ich używać zamiennie ?
- oczywiście że nie - Już wiem, że determinuje to funkcja WRITE/READ TWI lub podobna !



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2018, o 21:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 369
Lokalizacja: Gliwice
Pomógł: 34

Tak determinuje, wszystko zależy jak zaimplementowano rozwiązanie w kodzie.



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 2 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