- Labornetzteil AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Warten auf Tastendruck -> Interrupt wird nicht mehr ausgeführt

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.11.2004
    Beiträge
    156

    Warten auf Tastendruck -> Interrupt wird nicht mehr ausgeführt

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Ich habe ein kleines Problem mit einem Programm: Ich habe ein Timer-Interrupt, das während der gesamten Laufzeit aktiviert ist.
    An einer Stelle in der main warte ich darauf, dass der Benutzer eine Taste drückt:
    Code:
    ...
    while(PINC & (1<<PINC4)) {}
    ...
    Das Problem: Sobald das Programm bei der Schleife ankommt, wird das Timer-Interrupt nicht mehr ausgeführt. Sobald der Taster gedrückt wurde, geht es weiter.

    Wenn ich jetzt in die Schleife ein "sei();" einfüge, dann funktioniert alles.
    Kann mir jemand sagen, warum das so ist? ich habe das Interrupt schließlich nirgends deaktiviert...
    Geändert von Amri (27.11.2012 um 11:09 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Schalte mal die Optimierung im Compiler aus, vlt optimiert er hier was weg. Stichwort volatile.

    mfg

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.11.2004
    Beiträge
    156
    Zitat Zitat von Wsk8 Beitrag anzeigen
    Schalte mal die Optimierung im Compiler aus, vlt optimiert er hier was weg. Stichwort volatile.

    mfg
    Das hat leider nicht geholfen...

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Wie wäre es Mal mit mehr Quelltext? Einem Assembler-Listing des generierten Hex-Files? Dem Hex-File selbst, um das Mal durch den Simulator zu jagen? Angaben zur Compilerversion?

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von robo_tom_24
    Registriert seit
    04.02.2012
    Ort
    Burgenland, Österreich
    Beiträge
    485
    Das was du da machst ist ja eigentlich ganz schlecht....
    Programmier doch den Taster auf Interrupt, wär doch eleganter und weniger Arbeit für den µC

Ähnliche Themen

  1. If-Schleife wird nicht ausgeführt
    Von Knipser-14 im Forum C - Programmierung (GCC u.a.)
    Antworten: 11
    Letzter Beitrag: 08.10.2010, 12:26
  2. Antworten: 1
    Letzter Beitrag: 03.08.2010, 18:37
  3. Eagle: Forward-/Back-Annotation wird nicht ausgeführt
    Von DuNDy im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 6
    Letzter Beitrag: 22.04.2008, 17:18
  4. Programm wird bei geänderter Frequenz nicht mehr ausgeführt
    Von cesupa im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 19.08.2007, 00:50
  5. Anweisung wird nicht richtig ausgeführt
    Von Foooob im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 20.02.2006, 18:11

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad