Witam
Mam następujący problem, do pamięci eeprom atmegi 8 chce zapisać taka oto tablicę:
Zgodnie z biblioteką avr/eeprom.h użyłem definicji EEMEM i tablica została umieszczona w pamięci eeprom jak chciałem
tylko że ... teraz pojawia się pytanie jak się dostać do tej tablicy ? Próbowałem odczytywać to za pomocą poniższej funkcji:
(i to kolejna pozycja tablicy którą chce odczytać)
Tylko że nie za bardzo to chce działać, nie wiem dokładnie jak to jest umieszczone w pamięci eeprom- chodzi mi numeracje tablicy począwszy od 0, czy koniecznie kompilator zaczyna od 0 komórki pamięci ?
I czy ze względu na odczyt, numer poszczególnego elementu tablicy adres komórki nie powinien być przemnożony przez 2 ? (każdy element tablicy jest 16 bitowy, a komórka pamięci 8 bitowa czyli np element w tablicy numer 3 powinien mieć adres 6 w komórce pamięci eeprom...) czy mam racje ?
w kazdym razie przy przemnożeniu numeru komórki przez 2 też nie działa :>
Z góry dziękuje za wszelką pomoc.
Mam następujący problem, do pamięci eeprom atmegi 8 chce zapisać taka oto tablicę:
const uint16_t EEMEM C_rtd[] = {0 ,233, 466, 699, 933, 1166, 1400, 1634, 1868, 2102, 2336, 2571 ,2805, 3040, 3275, 3510, 3746, 3981, 4217, 4453, 4689, 4925, 5161, 5398, 5635, 5871, 6108, 6346, 6583, 6820, 7058, 7296, 7534, 7772, 8011, 8249, 8488, 8727, 8966, 9205, 9445, 9684, 9924, 10164, 10404, 10644, 10885, 11125, 11366, 11607, 11848, 12090, 12331, 12573, 12815, 13057, 13299, 13542, 13784, 14027, 14270, 14513, 14757, 15000};Zgodnie z biblioteką avr/eeprom.h użyłem definicji EEMEM i tablica została umieszczona w pamięci eeprom jak chciałem
C_rtd_i=eeprom_read_word ((uint16_t*)i);
(i to kolejna pozycja tablicy którą chce odczytać)
Tylko że nie za bardzo to chce działać, nie wiem dokładnie jak to jest umieszczone w pamięci eeprom- chodzi mi numeracje tablicy począwszy od 0, czy koniecznie kompilator zaczyna od 0 komórki pamięci ?
I czy ze względu na odczyt, numer poszczególnego elementu tablicy adres komórki nie powinien być przemnożony przez 2 ? (każdy element tablicy jest 16 bitowy, a komórka pamięci 8 bitowa czyli np element w tablicy numer 3 powinien mieć adres 6 w komórce pamięci eeprom...) czy mam racje ?
Z góry dziękuje za wszelką pomoc.
