- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 3 von 3

Thema: AVR bleibt in while-Schleife hängen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734

    AVR bleibt in while-Schleife hängen

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    ich komme nicht mehr weiter, vielleicht kann mir einer helfen.
    Mein C-Programm bleibt in folgender while-Schleife hängen.

    while(rxbits < 14);

    So lange rxbits kleiner als 14 ist, soll es auch. rxbits wird in einer Interrupt-Routine hochgezählt. Wenn rxbits =14 ist, soll es in dem Programm weitergehen. Tut es aber nicht. Was mach ich falsch?
    An einer anderen Stelle im Programm funkioniert es, wie hier:

    while(PIND & (1 << PD0)); // warte auf 1. Flanke

    Aber nicht bei dem 1. Beispiel. Ich hab schon andere Bedingungen ausprobiert, aber es hilft nichts.
    Es ist bestimmt nur eine kleine Sache, die ich falsch mache. Wer kann mir helfen?

    Gruss Waste

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Ist rxbits als volatile deklariert ??
    Wenn nicht denkt der Compiler die Variable würde sich nicht ändern und macht eine Endlosschleife daraus ( kann man meistens auch schön im Assemblerlisting sehen ).

    MfG Kjion

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Hallo Kjion,

    Das war es. Mit volatile funzt es.
    Danke Dir!

    Gruss Waste

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress