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



Teraz jest 21 kwi 2026, o 23:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 2 lip 2015, o 14:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 maja 2013
Posty: 83
Lokalizacja: Tychy
Pomógł: 3

Witam !
Chciałem napisać bibliotekę do akcelerometru MMA8452, coś w stylu Mirka o OLED. Chciałem przeszczepić kod z Arduino na AVR.
Robiłem to na podstawie tego kodu: (umieszczę link bo dużo do wyklejania by było)
GitHub:
mma8452.c
mma8452.h

Stworzyłem na tej podstawie własną bibliotekę oraz napisałem prosty program do wyświetlania jednej wartości (tak żeby zobaczyć czy w ogóle coś działa):

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


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


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


Niestety program przestaje działać zaraz po wykonaniu MMA8452Q_init() :/

A teraz pytanie gdzie mogę popełniać błąd ? Może gdzieś w komunikacji robię ?

p.s. Dorzucam zdjęcie jak jest podłączone wszystko.
PC1 -> SDA
PC0 -> SCL
Obrazek

_________________
Musicie od siebie wymagać...
JP II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 16:27 
Offline
Użytkownik
Avatar użytkownika

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

Może się mylę, ale wygląda mi na to, że nie masz rezystorów podciągających do Vcc na liniach SDA i SCL. Zobacz na schemacie zestawu ATB http://atnel.pl/instrukcja-atb-rev-1-04.html, że gdy rozłączasz zworki J8 i J9 to równocześnie "odłączasz" też te rezystory R29 i R31.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lip 2015, o 16:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 maja 2013
Posty: 83
Lokalizacja: Tychy
Pomógł: 3

Dzięki !
Ruszyła komunikacja. Przyszedł czas na sprawdzenia czy potrafię uruchomić samego scalaka żeby zaczął mierzyć.
W celu sprawdzenia dopisałem taką funkcję:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Ma ona za zdanie odczytać położenie i zwrócić odpowiadającą mu wartość.

W pliku main.c wygląda 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.

Niestety mimo wielu prób ciągle zwraca mi jedna i te samą wartość.
Mam pytanie czy dobrze używam funkcji TWI_read_buf() (To jest ta z BB) ?
Wygląda to tak jak by się zacinał na ustawieniach początkowych i nic dalej nie robił.

_________________
Musicie od siebie wymagać...
JP II



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2015, o 18:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Zobacz w nocie jak przebiega komunikacja. Najczęściej trzeba trochę przerobić funcję read i write buf.

_________________
--... ...-- - --- -- . -.-



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 1 gość


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