Skocz do zawartości

Atmega8L + MMA7455L TWI nic nie odbiera


Mateusz

Pomocna odpowiedź

No to co? Czy to jest gorsze od 0x15 albo 0x666? No, może z tym ostatnim to przesadziłem..

Przeczytaj inne rejestry. Może układ wykonał jeden pomiar i ten sam wynik jest wciąż dostępny. Porównaj XOUT8 z rejestrami 0 i 1. Przeczytaj inne rzeczy, rejestr stanu itp.

I może nadszedł czas na napisanie jakiejś obsługi UARTa? 😉

Link do komentarza
Share on other sites

Nie ważne jaki adres wpisze czy 00, 06 07, 14 to awsze na wyjściu dostaje 0x84

Może trzeba wykorzystywać INT1 układu MMA (Interrupt 1/ Data Ready) i dopiero wtedy wysłać zapytanie? Czy to nie powinno mieć aż tak dużego znaczenia ?

Jutro jeszcze na oscyloskop skocze zobaczę co się dzieje w układzie.

Link do komentarza
Share on other sites

No to jeszcze zajrzyj do kodu funkcji twi_read() i powiedz mi w jaki sposób oddaje ona swoją wartość..

EDIT: Mateusz, niektórzy powinni mieć zabronione używanie guzika EDIT. Mam wrażenie, że przez Ciebie zaliczą mnie do tej grupy.

  • Lubię! 1
Link do komentarza
Share on other sites

loool no tak 🙂

unsigned char TWI_read(unsigned char ack)
{
TWCR=(1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
while(!(TWCR & (1<<TWINT)));
return TWDR;
}

Tylko że dostaje teraz 0x00 cały czas.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Cały czas z różnych rejestrów, czy z tego samego? W katalogu stoi, że zera to właśnie domyślne zawartości większości rejestrów - sam zobacz. Może znajdziesz jakiś, który zerami nie jest. Moi kandydaci: I2CAD, TOUT, USRINF, WHOAMI. Zawsze możesz coś zapisać (tylko do niektórych oczywiście) i sprawdzić, czy wróciło. Albo zacząć pisać normalny driver tego układu, ustawić tryby pracy, kazać mu mierzyć i poczekać na wyniki 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

To jest tylko część do robota a mianowicie kamerka FPV która będzie się ruszać za ruchami głowy osoby która będzie miała video gogle 🙂

[ Dodano: 13-02-2012, 18:51 ]

Dla ludzi którzy będą używali tego układu:

void MMA7455L_init()
{
char ITGWriteAddress = 0x1D << 1;
   char ITGReadAddress = (0x1D << 1) | 1<<0;
TWI();
}

A potem już można odczytywać wszystkie wartości zmierzone.

Link do komentarza
Share on other sites

To jest tylko część do robota a mianowicie kamerka FPV która będzie się ruszać za ruchami głowy osoby która będzie miała video gogle 🙂

A konkretnie jaka to kamerka?

Link do komentarza
Share on other sites

Takie coś 🙂

http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=13440

plus:

http://www.hobbyking.com/hobbyking/store/__16072__Turnigy_BASIC_FPV_Goggles_428_x_240_Wide_Screen.html

[ Dodano: 14-02-2012, 17:52 ]

A czy ma ktoś jakiś pomysł jak wyliczyć przyspieszenie g w każdej z osi ? 🙂

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.