www.mikrocontroller.net

Forum: Compiler & IDEs Inerrupt handling, LED_AN während EEPROM beschrieben wird


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte dass eine LED das beschreiben von EEPROM anzeigt. Ich mache 
das so:
  Disable_Interrupts();
  LED_an();
  //get sensor data
  get_data_in_buf();
  
  asm volatile ("NOP"::);
  asm volatile ("NOP"::);
      
  //save data in EEPROM
  eeprom_write_block( &buf, OFFSET, sizeof(buf));

  LED_aus();

  asm volatile ("NOP"::);
  asm volatile ("NOP"::);
  Enable_Interrupts();

Die LED leuchtet auf, geht aber dann nicht aus. Da ich Interrupts 
verwende, schalte ich sie global aus. Und damit die angefangene Befehle 
beendet werden, setze ich mehrmals NOP. Aber nichts hilft!
Trotz dem bekomme ich die LED nach Beschreiben des EEPROMs nciht 
ausmachen.

Weiß jemand was ich falsch mache?

Autor: F1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht dein   LED_aus();   denn aus?

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so:

#define LED_aus()  LED_PORT &= ~(1<<0)

das funktioniert schon. ich kann die LED ein und ausschalten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.