- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 12 von 12

Thema: Verständnisfrage zum Thema Interrupts (mega64)

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.09.2005
    Ort
    Osnabrücker Land
    Alter
    63
    Beiträge
    534
    Anzeige

    Praxistest und DIY Projekte
    hmmm ...
    nun Du mußt ja in der Interruptabarbeitung jeweils nur ein Flag setzen.
    aber vergiss nicht, das globale flag als volatile zu deklarieren:
    volatile byte flag = 0;

    Je nachdem, was Du in den Schleifen abarbeiten lassen willst, wäre auch eine andere Methode (als die 3 while-Schleifen im B eitrag zuvor) über switch möglich, so kannst Du bei jedem Schritt auf Abbruch prüfen ...

    Code:
    **verkürzte schreibweisen**
    
    volatile byte flag = 0;
    
    INT_1 { flag = 10; }
    INT_2 { flag = 100; }
    
    void main(void)
    {
       for(;;)
       {
          switch(flag)
          {
             case  0 : {Init und am Ende: flag = 10;} break;
    
             case 10 : {tue was und am Ende: flag = 11;} break;
             case 11 : {tue was und am Ende: flag = 12;} break;
             case 12 : {tue was und am Ende: flag = 13;} break;
             case 13 : {flag = 10;} break;
    
             case 100 : {tue was und am Ende: flag = 101;} break;
             case 101 : {tue was und am Ende: flag = 102;} break;
             case 102 : {tue was und am Ende: flag = 103;} break;
             case 103 : {tue was und am Ende: flag = 104;} break;
             case 104 : {flag = 100;} break;
          }
       }
    }
    Somit wird Schritt für Schritt abgearbeitet, kann aber jederzeit gewechselt werden .... und du könntest flag 0 .. 10 auch dafür nutzen, was einleitendes zu tun = Initialisierung von was auch immer.

    Du könntest Dir auch den alten Werte vor änderung merken und so an nach "Schleifenwechsel" wieder an der Stelle weitermachen, wo unterbrochen wurde ...

    Wenn Du über die Schleifen z.B. Schrittmotoren steuerun wolltest, könntest die Hauptschleife auch in einen Timerinterrupt packen und mit einem Vorteiler, die Taktfrequenz verändern = Beschleunigung und Abbremsvorgang ...

    Idee verstanden ?

    Hope it helps,
    Vajk
    Ich kann mir keine Signatur leisten - bin selbständig!

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    18.08.2005
    Beiträge
    86
    Vielen Dank für die tollen Beispiele!!!!

    Daraus kann ich eine schöne Lösung konstuieren.

    Grüße

    popi

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress