-         

Ergebnis 1 bis 6 von 6

Thema: interrupts

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.11.2005
    Beiträge
    22

    interrupts

    Anzeige

    hallo alle

    in meinen ISR's werden variablen die ich im main() benutze nicht erkannt. hab auch schon mit "volatile" rumgespielt- auch kein effekt. woran liegts und was bedeutet volatile genau?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    schau mal hier,
    und hier.

    Da haben sich Leute Mühe gemacht, um Dir zu helfen.

    woran liegts
    *Glaskugel auspack*
    Wahrscheinlich daran :
    ...werden variablen die ich im main() benutze nicht erkannt.
    Du mußt Sie schon Global definieren, sonst wird es nicht klappen.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    01.11.2005
    Beiträge
    22

    interrupts

    OK!
    hat funktioniert. danke schon mal.
    was heisst denn nun volatile genau? denn es funktioniert auch mit stinknormalen typen wie int & char. aus deinen "hiers" werd ich nicht wirklich schlau.
    pack die glaskugel aus BABA-JAGA!

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    "volatile" bedeutet "flüchtig". D.h. der Wert einer Speicherstelle oder eines SFRs kann sich ohne zutun des Compilers ändern (etwa indem die Hardware ein SFR verändert oder eine ISR den Wert ändert (wann die zuschlägt, kann man nicht wissen)). Daher wird für bei jedem Zugriff auf eine volatile-Variable diese auch in/vom Speicher geschrieben/gelesen und nicht aus Optimierungsgründen in einem Register (GPR) gehalten. Ohne Optimierung (-O0) ist jede Variable implizit volatile (zumindest wird es von GCC so gehandhabt).
    Disclaimer: none. Sue me.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    01.11.2005
    Beiträge
    22
    na das mit der optimierung ist doch schon mal ne hilfe. lässt sich glaube im AVR-Studio einstellen.

    danke

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Für normalen Betrieb empfiehlt sich "-Os" (optimiert auf Größe). Macht eigentlich nen ganz guten Code. Wenn's nicht sauber programmiert ist, nutzt es dir auch nix, Optimierung abzustellen -- du bekommst dann sogar eher Platzprobleme in Flash und SRAM.
    Disclaimer: none. Sue me.

Berechtigungen

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