EEPROM-muistin käyttö

Codevision-koodaaja

Kiitos avusta edelliseen viestiini vastanneille nimimerkeille asödkjfölaksjdfasdf ja keksa. Näillä pääsen eteenpäin toistaiseksi.

Mulla olisi myös toinen pulma, nimittäin mikro-ohjaimen sisäisen EEPROM-muistin käyttö. Projektissani tullaan joskus myöhemmin tarvitsemaan jonkinlaista keinoa säilyttää muuttujien arvoja sähkökatkoksen yli, ja EEPROM voisi olla ratkaisu.

Tietääkö joku, millaisilla komennoilla ja funktioilla EEPROM-muistiin viedään muuttujia ja niiden arvoja ja miten ne saadaan sieltä ulos? Kutsutaanko ne käyttöön globaalisti, vai funktiokohtaisesti?

Kiitos etukäteen.

4

1070

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Codevision-koodaaja

      ollaan siis edelleen tietysti CodevisionAVR-kääntäjäympäristössä.

    • keksa

      hmm eikös eeprom vaatinut sen, että data "poltetaan" muistiin valolla tms?

      Saako siihen vehkeeseen Flash-muistia kiinni?

      Muisti näkyy prosessorille aina jonain muistiosoitteina, johon siirretään tietoa ihan kuten muutenkin.

      intel 8051 prossussa tai olla, että sisäiseen muistiin kirjoitettiin MOV-käskyllä ja ulkoisiin MOVX-käskyllä.

      MOVX 2000H, A #siirtää rekisterin A sisällön tuohon muistiosoitteeseen.

      Ei kovin tarkasti muista 10v takaisia juttuja

      • Codevision-koodaaja

        EEPROM voidaan ymmärtääkseni ohjelmoida ja tyhjentää sähköisesti, onhan nyt kyseessä AVR-ohjeimen sisäinen EEPROM. Sen nimikin tulee sanoista "Electricly eraseable Programmable Read Only Memory."

        Yhden e:n prom, eli EPROM vaati ultraviolettia tyhjennykseen.


    • ökjaösdkjfaöklsdf

      Prosessorin user manualissa on varmaan kerrottu EEPROM:n käytöstä tai annettu linkki johonkin muuhun dokumenttiin joka selventää asiaa. Atmellin sivuilta löytyi seuraava dokumentti, (en tiedä koskeeko prosessoriasi).

      http://www.atmel.com/dyn/resources/prod_documents/doc0932.pdf

      Jos tuon linkin mukaan tekee yksinkertaiset luku ja kirjoitus rutiinit (joka käsittelee tavua), niin taitavat mennä jotenkin seuraavasti CodeVisionilla:

      --- ALKAA ---

      void eeprom_write(int osoite, char merkki);
      char eeprom_read(int osoite);

      /* Kirjoittaa merkin EEPROM muistiin haluttuun osoitteeseen */
      void eeprom_write(int osoite, char merkki)
      {
         /* Odotetaan että edellinen kirjoitus on suoritettu loppuun */
         while(EECR.1);

         /* Asetetaan osoiteen ylempi ja almepi tavu johon kirjoitetaan */
         EEARH = (osoite >> 8) & 0xff;
         EEARL = (osoite >> 0) & 0xff;

         /* Asetetaan kirjoitettava data */
         EEDR = merkki;

         /* Otetaan keskeytykset pois */
         #asm("cli");

         /* Asetetaan EEMWE (EEPROM master write enable) bitti päälle */
         EECR.2 = 1;

         /* Asetetaan EEWE (EEPROM write enable) bitti päälle */
         EECR.1 = 1;

         /* Sallitaan kesketytykset */
         #asm("sei");
      }

      /* Lukee merkin EEPROM muistista halutusta osoitteesta */
      char eeprom_read(int osoite)
      {
         char merkki;

         /* Odotetaan että edellinen kirjoitus on suoritettu loppuun */
         while(EECR.1);

         /* Asetetaan osoiteen ylempi ja almepi tavu johon kirjoitetaan */
         EEARH = (osoite >> 8) & 0xff;
         EEARL = (osoite >> 0) & 0xff;

         /* Asetetaan EERE (EEPROM read enable) bitti päälle */
         EECR.0 = 1;

         /* Luetaan merkki */
         merkki = EEDR;

         /* Palautetaan luettu merkki */
         return merkki;
      }


      --- LOPPUU ---

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Suomen kansa haluaa Antti Lindtmanista pääministerin

      Lindtman on miltei tuplasti suositumpi kuin etunimikaimansa Kaikkonen. Näin kertoo porvarimedian teettämä kysely. http
      Maailman menoa
      268
      4675
    2. Vain 21% kannattaa Lindtmania pääministeriksi

      se on selvästi vähemmän kuin puolueen kannatus, mites nyt noin?
      Maailman menoa
      134
      3030
    3. Miten löydän sinut

      Ja saan sanottua kaiken mitä haluan sinulle kertoa? Ja kuinka kuuntelisit minua sen hetken? Kuinka voin ilmaista sen mit
      Ikävä
      44
      2857
    4. Miksei Björn Wahlroos jaa rahaa köyhille?

      Esimerkiksi Nordean tiloissa? Vai tuovatko ne köyhät hiekkaa marmorilattioille ja siksi ei pysty mursunviiksi pystyyn k
      Maailman menoa
      25
      2827
    5. Yöllinen autolla kaahari Heinolan seudulla

      Asukkaita häiriköivän nuoren herran autokaahaus keskustelu poistettu, onko jokin hyvävelijärjestelmä käytössä ?
      Heinola
      76
      1791
    6. Vaikea tilanne

      Hieman kolkuttaa omatuntoa, kun on osoittanut kiinnostusta väärää naista kohtaan. En ymmärrä miten toinen on voinut te
      Ikävä
      106
      1654
    7. Jouluksi miettimistä: kuka tai mikä valmistaa rahan?

      Nyt kun on ollut vääntöä rahasta ja eritoten sen vähyydestä, niin olisi syytä uida rahan alkulähteille, eli mistä se syn
      Maailman menoa
      28
      1521
    8. Milloin kaivatullasi

      .. on nimipäivä?
      Ikävä
      60
      1409
    9. Kehtaisitko näyttäytyä

      kaivattusi seurassa?
      Ikävä
      95
      1282
    10. Julkinen sektori on elänyt aivan liian leveästi yli varojensa!

      Viimeisen 15 vuoden aikana julkisen puolen palkat ovat nousseet n. 40%, kun taas yksitysellä sektorilla vain n. 20%. En
      Maailman menoa
      215
      1180
    Aihe