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

970

    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. Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos

      Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä
      Maailman menoa
      91
      2920
    2. Pelotelkaa niin paljon kuin sielu sietää.

      Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda
      Maailman menoa
      299
      1686
    3. Mikä saa ihmisen tekemään tällaista?

      Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?
      Sinkut
      246
      1567
    4. Minkä merkkisellä

      Autolla kaivattusi ajaa? Mies jota kaipaan ajaa Mersulla.
      Ikävä
      87
      1391
    5. IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!

      Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel
      Maailman menoa
      402
      1384
    6. Nyt kun Pride on ohi 3.0

      Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että
      Luterilaisuus
      402
      1308
    7. Kiitos nainen

      Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik
      Tunteet
      2
      1089
    8. Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa

      Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat
      Suomalaiset julkkikset
      38
      1047
    9. Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?

      Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun
      Maailman menoa
      329
      874
    10. Miksi Purra-graffiti ei nyt olekkaan naisvihaa?

      "Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden
      Maailman menoa
      257
      855
    Aihe