ATNEL tech-forum https://forum.atnel.pl/ |
|
Problem z zapisem/ odczytem z EEPROM https://forum.atnel.pl/topic23223.html |
Strona 1 z 1 |
Autor: | magnetic [ 24 cze 2020, o 12:06 ] |
Tytuł: | Problem z zapisem/ odczytem z EEPROM |
Czołem! Od dłuższego czasu próbuję zlokalizować błąd, który powoduje problem z zapisem lub odczytem z zewnętrznego EEPROMu 24c512. Według noty pomieści on 512 stron o wielkości 128 bajtów. Moja funkcja do zapisu danych wygląda tak: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Czyli jeden zapis to 8 bajtów. Na końcufunkcji "EEPROM_write_values()" jest delay 5ms. Do wgrywania czegoś w rodzaju ustawień fabrycznych używam if'ów w ten sposób: if ( cnt_2<40 ) { if ( cnt1==1) { cl_le_status=0; lo_hi_status=0; EEPROM_write_values(); cnt1=2; } if ( cnt1==2) { cl_le_status=0; lo_hi_status=1; EEPROM_write_values(); cnt1=3; } if ( cnt1==3) { cl_le_status=1; lo_hi_status=0; EEPROM_write_values(); cnt1=4; } if ( cnt1==4) { cl_le_status=1; lo_hi_status=1; EEPROM_write_values(); cnt2++; cnt1=1; } } Problem polega na tym, że cyklicznie w "tym samym" miejscu dane zapisują się lub odczytują inaczej niż mam wpisane. Problem dotyczy tylko bitów nr 4 i 5 czyli "values_buffer[4]" i "values_buffer[5]" i tylko jeśli wartość licznika cnt1=4 a cnt2 jest równe 8, 16, 24, 32 lub 40 (więcej nie używam). Myślę, że rozwiązałbym problem przesuwając dane w komórkach adresowych w tych miejscach, ale to zajęłoby trochę kodu. Może ktoś widzi gdzie leży problem i byłby w stanie nakierować? |
Autor: | magnetic [ 24 cze 2020, o 20:01 ] |
Tytuł: | Re: Problem z zapisem/ odczytem z EEPROM |
Problem rozwiązany, można usunąć |
Autor: | micky [ 24 cze 2020, o 21:14 ] |
Tytuł: | Re: Problem z zapisem/ odczytem z EEPROM |
Napisz jak-będzie dla potomnych. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |