-
        

Ergebnis 1 bis 5 von 5

Thema: Problem mit EEPROM ATmega8

  1. #1

    Problem mit EEPROM ATmega8

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Ich habe ein Problem mit mein EEPROM. Ich schreibe ein Byte wie unterstehend im EEPROM:



    sbic EECR, EEWE ;EEWE is zero when previous write cycle is finished
    rjmp Eeprom_wait ;If not completed yet, then try again
    cli ;Disable interrupts
    ldi r18, 0 ;Set the address in the EEPROM to start writing
    out EEARH, r18 ;Address in EEPROM, upper part, page (max 1)
    ldi r17, 0 ;Set the address in the EEPROM to start writing
    out EEARL, r17 ;Address in EEPROM, lower part, byte (max 255)
    ldi r16, 3 ;Default running program modus
    out EEDR, r16 ;EEPROM data register
    sbi EECR, EEMWE ;Prepare EEPROM to write to
    sbi EECR, EEWE ;Write to EEPROM
    sbic EECR, EEWE ;EEWE is zero when previous write cycle is finished
    rjmp Eeprom_wait ;If not completed yet, then try again
    sei ;Enable interrupts

    Wenn Ich diese byte schreibe und anschliessend auslese erhalte Ich den richtigen Wert (3). Wenn Ich allerdings eine reset durchfuehre scheint diese Wert verschwunden, Ich erhalte 0xFF.

    Also es scheint als wuerde mein EEPROM sich als SRAM benehmen. Hat jemanden ein Idee was die Urscahe sein koente???

    Vielen Dank im voraus,

    Richard Boekamp

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    ldi r18, 0 ;Set the address in the EEPROM to start writing
    Das sieht für mich so aus, als ob du den Wert in Adresse 0 des EEPROM schreibst.
    Diese Adresse kann nach einem Reset des AVR's gelöscht werden. Wie du selbst ja auch siehst.
    Probier es mal ab Adresse 1.
    Von Atmel gibt es auch eine AppNote zum Thema das 0 nicht genutzt werden sollte. Wenn du es nochmal schwarz auf weiß haben möchtest musst du dir die mal raussuchen. Die Nr. der AppNote hab ich leider nicht im Kopf.

  3. #3
    Danke Marco,

    Ist aber leider nicht die Loesung fuer mein Problem. Ich werde allerdings bemerken und weiterhin praktizieren dass Ich die Adresse 0 nicht benutzen sollte.

    Hat sonst noch jemanden ein Idee?

    Vielen Dank im voraus,

    Richard Boekamp.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    es gibts doch auch ein Fusebit, das sich EESAVE nennt,
    weiss allerdings nicht ob das auch für einen normalen Reset von Bedeutung ist !?

  5. #5
    Nein, ist es wahrscheinlich nicht. Trotzdem ist diese Fuse die Antwort auf mein Problem.

    Und Ich kann uebrigens auch ohne Probleme EEPROM Adresse 0 verwenden.

    Recht vielen Dank fuer Ihre Reaktionen. Ich kann wieder weiter!!

    Mit freundlichen Gruessen,

    Richard Boekamp

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •