logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] [Atmega8][C] Jak ustawić adres układu 24C16 w kodzie? Błędny odczyt/zapis

mikmas 13 Kwi 2019 03:29 456 1
REKLAMA
  • #1 17902982
    mikmas
    Poziom 18  
    Znalazłem podobny temat https://www.elektroda.pl/rtvforum/topic842630.html, ale za bardzo nie mogę zrozumieć odpowiedzi (późna godzina może). Jaki adres ukłądu w końcu powinienem użyć? Poniżej daję kod, który nie działa (funkcja zwraca false). Prośba o spojrzenie, co robię źle. Z pamięciami eeprom pierwszy raz się spotykam.
    Od razu pytanie odnośnie adresowania pamięci - rozumiem, że adres to wskazanie na stronę, która ma w sobie ileś B danych (ile? 8B?). Tak więc jak odczytać wartość z adresu (fizycznie będącego x bajtem licząc od pierwszego) np. 611?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 17903355
    mikmas
    Poziom 18  
    Znalazłem podobny temat https://www.elektroda.pl/rtvforum/topic842630.html, ale za bardzo nie mogę zrozumieć odpowiedzi (późna godzina może). Jaki adres ukłądu w końcu powinienem użyć? Poniżej daję kod, który nie działa (funkcja zwraca false). Prośba o spojrzenie, co robię źle. Z pamięciami eeprom pierwszy raz się spotykam.
    Od razu pytanie odnośnie adresowania pamięci - rozumiem, że adres to wskazanie na stronę, która ma w sobie ileś B danych (ile? 8B?). Tak więc jak odczytać wartość z adresu (fizycznie będącego x bajtem licząc od pierwszego) np. 611?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Dodano po 8 [godziny] 15 [minuty]:

    Błędnie uznałem, że można traktować TWCR jak "zwykły" rejestr. Przy odczycie (do maski bitowej) źle reagował. W twi_flush należało dać od razu całą wartość:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA