Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dostęp do pamięci ROM - duża tablica zmiennych

ppawel12 26 Paź 2011 15:34 1804 7
  • #1 26 Paź 2011 15:34
    ppawel12
    Poziom 16  

    Witam,

    Chciałbym napisać program, który będzie musiał przechowywać dużą ilość informacji. Planowałem stworzyć jedną tablicę typu "int" o rozmiarach np. 200 komórek. Niestety kompilatora Hi-tech nie pozwala jej stworzyć. Z lektury wywnioskowałem, że pamięć RAM jest podzielona na sektory i dlatego nie może on tych danych ulokować w pamięci :/ Program jest mały wiec pomyślałem, że może uda się wykorzystać nie używana pamięć ROM. Czy jest jakaś komenda, seria komend w C, które pozwolą mi stworzyć taką tablice w pamięci ROM i dokonywać wpisów do niej oraz odczytywać poszczególne komórki tej tablicy ??

    znalazłem taki fragment opisu kompilatora Hi-tech, ale chyba on dotyczy tylko i wyłącznie tworzenia tablicy danych w ROM ale już jej nie mogę modyfikować :(
    Link

    korzystam z MPLAB, kompilator Hi-tech 9.82, układ PIC16/18

    pozdrawiam ppawel

    0 7
  • #2 26 Paź 2011 15:57
    archanoid
    Poziom 25  

    Witam. Podaj na jakim mikrokontrolerze pracujesz .

    0
  • #3 26 Paź 2011 16:03
    ppawel12
    Poziom 16  

    pic16f1847

    0
  • #4 26 Paź 2011 16:14
    dondu
    Moderator Mikrokontrolery Projektowanie

    W rozdziale 11.3 datasheet tego PICa masz wszystko opisane co dotyczy zapisu, kasowania i odczytu Flash przez program.
    Ale pamiętaj o ograniczeniach ilości zapisów do Flash.

    0
  • #5 26 Paź 2011 16:30
    ppawel12
    Poziom 16  

    hmm o tym nie pomyślałem :/
    wiem, że każdy uk posiada ograniczoną ilość programować, czyli ilekroć bym dokonywał podczas wykonywania programu zapisu do pamięci programu (flash) to bym skracał jego żywotność dobrze rozumiem ??

    0
  • #6 26 Paź 2011 16:50
    dondu
    Moderator Mikrokontrolery Projektowanie

    tak, możesz użyć zewnętrzny EEPROM za kilka zł.

    0
  • #7 26 Paź 2011 21:26
    ppawel12
    Poziom 16  

    ok, chyba tak trzeba będzie zrobić, mogę użyć albo pamięci szeregowych albo równoległych. Równoległe są szybsze ale potrzebują więcej pinów z kontrolera.
    np. w równoległych zapis się odbywa na zasadzie włączeniu trybu odczytu, następnie nóżki adresowe ustawiam w stan wysoki/niski różne konfiguracje w zależności od ilości bitów adresowych 8, 16, itp. a na nóżki danych podaje informacje. Mam takie pytanie przy tych kościach pamięci podaje się częstotliwość np. 70MHz jest to maksymalna częstotliwość z jaką mogę zapisywać / odczytywać, mogę pracować z niższą np. 4MHz nie uszkodzi się układu ??

    0
  • #8 30 Paź 2011 01:11
    Szymon Tarnowski
    Poziom 27  

    Jeśli kompilator ma problemy z tak "dużymi" tablicami to zrób kilka mniejszych tablic i zrób własne funkcje odczytu i zapisu.

    0