frage zu avr-lib eeprom_write_byte

OP #1517886
Hi,
Ich hab schon gesucht, aber das nicht gefunden.
weder im Tutorial noch in der Doku der avr-lib

Die Frage:

Arbeitet die eeprom_write_byte synchron oder asynchron.
sprich: wartet sie am Ende solange der Eeprom beschrieben wurde oder 
oder beendet sie sich nach Start des Schreibvorgangs.

MfG,
vlad
Persönliche Seite #1517895
Siehe eeprom.h
1
static __inline__ void eeprom_write_byte (uint8_t *__p, uint8_t __value)
2
{
3
    do {} while (!eeprom_is_ready ());
4

5
#if  defined(EEPM0) && defined(EEPM1)
6
    EECR = 0;    /* Set programming mode: erase and write.  */
7
#elif  defined(EEPM0) || defined(EEPM1)
8
# warning "Unknown EECR register, eeprom_write_byte() has become outdated."
9
#endif
10

11
#if  E2END <= 0xFF
12
    EEARL = (size_t)__p;
13
#else
14
    EEAR = (size_t)__p;
15
#endif
16
    EEDR = __value;
17

18
    __asm__ __volatile__ (
19
        "/* START EEPROM WRITE CRITICAL SECTION */\n\t"
20
        "in  r0, %[__sreg]    \n\t"
21
        "cli        \n\t"
22
        "sbi  %[__eecr], %[__eemwe]  \n\t"
23
        "sbi  %[__eecr], %[__eewe]  \n\t"
24
        "out  %[__sreg], r0    \n\t"
25
        "/* END EEPROM WRITE CRITICAL SECTION */"
26
        :
27
        : [__eecr]  "i" (_SFR_IO_ADDR(EECR)),
28
          [__sreg]  "i" (_SFR_IO_ADDR(SREG)),
29
          [__eemwe] "i" (EEMWE),
30
          [__eewe]  "i" (EEWE)
31
        : "r0"
32
    );
33
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.