- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Sprung aus Interrupt

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    in der Interruptroutiene setze ich ein Flag a=1 richtig
    wo setze ich den Flag zurück? a=0
    ist mein Bz richtig?



    Bz:

    Do
    'mein Programm
    'wait 1
    dahin;
    'dein programm
    If a=1 then
    goto
    dahin
    loop
    end

    int1: 'interrupt
    pinb.1 =0
    If pinb.1 = 1 then
    a=1
    else
    a=0
    end if

    wigbert

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    18.07.2006
    Beiträge
    51
    In der Schleife direkt nach der Abfrage If a=1 die Variable zurücksetzen

    Do
    'mein Programm
    'wait 1
    dahin;
    'dein programm
    If a=1 then
    a=0 'variable zurück setzen
    goto
    dahin
    loop
    end



    (ob die syntax stimmt kann ich Dir leider nicht sagen, aber das Prinzip sollte so funktionieren)

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Dank Dir Falerion,
    jetzt muss aber die Hauptschleife sich bis zur Flagabfrage
    durcharbeiten,oder geht das noch anders.

    Wigbert

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    18.07.2006
    Beiträge
    51
    Ja, das muss Sie allerdings.

    Ich weiß ja nicht, wie Deine Hauptschleife aufgebaut ist, aber evtl. kannst Du die Abfrage ja an mehreren Stellen einfügen.
    Vielleicht am besten eine Funktion schreiben, die das prüft und dann gegebenenfalls das goto ausführt. Und diese dann in der Hauptschleife aufrufen. Du mußt abwägen zwischen der Häufigkeit der Prüfung auf das Flag und den anderen Aufgaben, welche Deine Hauptschleife erfüllt.

    Was soll nach dem Interupt den ausgeführt werden? Kann man das nicht evtl. auch in eine Funktion packen und somit auf das goto evtl. ganz verzichten?

    Falerion

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.213
    Ich hab mal eine rein Flag gesteuerte Hauptroutine in Assembler gebastelt.
    Die Hauptroutine bestand nur aus Abfragen, ob bestimmte Flags gesetzt waren und CALL Sprüngen für die entsprechende Verarbeitung.

    Die Hauptroutine wird somit sehr schnell durchlaufen und die Subroutinen nur bei Bedarf angesprungen. Die Hauptroutine wird dadurch auch sehr übersichtlich.

    Der Vorteil ist auch, das man die Subroutinen anpassen kann ohne die Hauptroutine zu verändern.

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Hallo,
    wkrug +falerion dank Euch.
    Es ging mir genenrell um Sprung bzw Flag,
    da ich das noch nie gemacht habe.


    Wigbert

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests