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



Teraz jest 16 mar 2025, o 18:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: 24c16 - odczyt
PostNapisane: 9 sie 2015, o 12:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 cze 2014
Posty: 76
Pomógł: 10

Witam serdecznie!
Bawię się z kością EEpromu 24c16 Atmela. Załadowałem do kości trochę danych (wycinek):
https://obrazkiforum.atnel.pl/4804/db84e637b92cb925f9b9746dfaebad56.PNG

Gdy próbuje odczytać dane z adresu 16 i długości 7 dostaję "KWIATEK", adres 32 i długość 7 dostaję "PUDELKO". Idąc tym tropem, gdy próbuję odczytać z adresu 272 i długości 9 powinienem dostać "TROLOLOLO", ale dostaje "KWIATEK" i dwa puste znaki. Kiedy poproszę o dane z adresu 256 dostaje swoje imię.

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


Cóż na to poradzić? Z góry dziękuję wszystkim za pomoc.

_________________
:)



Ostatnio edytowano 9 sie 2015, o 14:42 przez ShutDownSystem, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2015, o 13:28 
Offline
Użytkownik

Dołączył(a): 24 kwi 2013
Posty: 454
Pomógł: 30

Gdzieś ucina pierwszy bajt adresu i z 272, robi się 10, albo powyżej 256 trzeba jakoś inaczej adresować.
Nie bawiłem się tym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2015, o 15:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 cze 2014
Posty: 76
Pomógł: 10

Nigdy nie można się poddawać i przejrzeć wszystko jeszcze od nowa :D

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

_________________
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2015, o 20:41 
Offline
Użytkownik

Dołączył(a): 01 sty 2014
Posty: 116
Pomógł: 14

Działa czy nie działa??

Bardzo dziwnie wysyłasz adres?
Możesz wytłumaczyć o co dokładnie chodzi w tej lini?
ShutDownSystem napisał(a):
TWI_write( device | ((subAddr>>8)<<1) );



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sie 2015, o 22:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 cze 2014
Posty: 76
Pomógł: 10

Tak, działa. Już tłumaczę panie kolego. Otóż jak wiadomo układ 24c16 to tak naprawdę kilka kości EEP w jednym scalaku. Gdybyśmy chcieli się odwołać do adresu komórki pamięci dec 340, czyli binarnie 101010100 przekroczymy 8bitowy adres o 1 bit. Dlatego aby odwołać się do tego adresu komórki musimy zapisać te 'wystające' bity do adresu scalaka ( 1010xxx0 ) , w miejsce x. W tej części (subAddr>>8), 101010100 przesuniemy o 8 , czyli zostanie nam 000000001. Teraz wystarczy przesunąć to znów o 1, do 000000010. Teraz gdy wykonamy operacje OR - 1010xxx0 | 000000010 = 10100010 otrzymamy adres jednej z wielu kości w tym scalaku. Jak wiadomo z noty, bit R w adresie scalaczka 1010xxxR oznacza tryb READ lub WRITE. W późniejszej linijce dodajemy do adresu 1, aby ustawić ten bit na 1, by dać wygnał kości, że będzie odczyt.

Mam nadzieję, że jest to choć trochę zrozumiałe. Polecam wziąć kawałek kartki i sobie po kolei rozrysować wszystkie operacje. Szybciej się da zrozumieć.

Polecam do lektury: Klik

_________________
:)



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 6 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