To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ATxMega128 i TWI - problemy... cd
#13
Witaj Staszku,

Nie za bardzo zrozumiałem z Twojego postu z czym masz problem - zapis, odczyt całego bufora ??

Na zapis do pamięci danych z bufora bez magicznych wzorów, które podałeś, można sobie np. tak poradzić:
Kod:
void mem_c512_write( uint16_t reg, uint8_t * bufor, uint8_t len )
{

uint8_t i = len - 1;

do {
  bufor[i + 2] = bufor[ i ];
} while( i--);

bufor[0] = reg >> 8;
bufor[1] = reg & 0xff;


twic_write_buf(mem_ADDR, bufor, len + 2);                //wysylanie bufora do C512
}

W tym przypadku bufor musi mieć co najmniej o 2 bajty większy rozmiar, niż ilość danych do zapisu. Na uwadze też mieć należy to, że zawartość bufora jest modyfikowana.
Nie określiłeś się co dokładnie chcesz zapisywać, odczytywać z/do pamięci. Jeżeli jakieś ustawienia, to może warto rozważyć użycie struktury, a w niej 2 pierwsze bajty zarezerwować dla adresu komórki w pamięci C512 ? Wtedy bez żadnych dodatkowych zabiegów wysyłamy taką strukturę przez i2c ? Rozwiązań jest tyle, ilu programistów...

Przy okazji taka mała sugesia. Staraj się bez potrzeby nie używać operacji dzielenia. Zwiększa to niepotrzebnie rozmiar kodu. Chyba, że ATxmega ma rozkazy sprzętowego dzielenia liczb 16 bitowych.

Przykład pisany "na kolanie".... więc.....
73 Paweł
Cytuj


Wiadomości w tym wątku
ATxMega128 i TWI - problemy... cd - przez SP2GNB - 11-12-2016, 21:53

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości