-         

Ergebnis 1 bis 2 von 2

Thema: Interrupt mit Funktionen

  1. #1

    Interrupt mit Funktionen

    Anzeige

    Hallo, ich habe ein kleines Problem und hoffe, dass mir hier vielleicht jemand dabei helfen kann.

    Zunächst einmal benutze ich die original Libary. Ich habe eine Go und eine Turn Funktion geschrieben, die auch beide wunderbar funktionieren. Nun will ich, dass der Asuro bei einer Kollision einem Hindernis ausweicht. Da ich ungern die Go Funktion extra dafür umschreiben will, würde ich das gerne mit einem Interrupt lösen. Der Interrupt funktioniert auch ohne Probleme nur will er danach nicht mehr das normale Programm fortführen, sondern steht still.

    Hier der Code ohne Deklaration von Go und Turn:
    Code:
    int main(void)
    {
        Init();
        StartSwitch();
        while(1){
        Go(100);
        }
        return 0;
    }
    
    SIGNAL (SIG_INTERRUPT1)
    {
        Go(-100);
        Turn(180);
    }
    Ist meine Lösung theoretisch überhaupt möglich?

    Gruß
    Acur

  2. #2
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    theoretisch ja.

    allerding ssolltest du interrupts so kurz wie nur irgend möglich halten (beispielsweise NUR eine variable setzen wie "unfall = 1;", welche dann in der hauptfunktion ausgewertet wird (if(unfall == 1){fahre rückwärts}else{fahre vorwärts}). geschachtelte interrupts, sind mit dem GCC in standardeinstellung nicht möglich, werden aber für die go- und turn funktion benötigt (da diese ja schon innerhalb einer interruptroutine aufgerufen werden).
    kleinschreibung ist cool!

Berechtigungen

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