- Akku Tests und Balkonkraftwerk Speicher         
Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte
Ergebnis 61 bis 70 von 85

Thema: NIBO2 - Test Bodensensoren

  1. #61
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    Anzeige

    Praxistest und DIY Projekte
    Hallo nochmal,
    wenn ich

    //motco_setSpeed(-50, -50);
    motco_setPosition(-20,-20, 20);

    das Auskommentierte durch ...setPosition... ersetze, fährt Nibo eben nicht!!! rückwärts. Das war die Frage nach dem "Befehl".

    Grüß Dich, workwind!

    Die Lisbeth2010

  2. #62
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    Hallo Lisbeth2010,

    Du rufst aus dem Interrupt-Context die delay() Funktion auf! Da es sich um einen Timer-IRQ handelt, kann während des delays ein weiterer IRQ ausgelöst werden - das gibt Chaos auf dem Stack....
    Es ist sicherer im Timer-IRQ nur ein Flag zu setzen, und in der main-Funktion auf dieses Flag zu warten um von dort die laufstall() Funktion aufzurufen.
    Das Flag muss dabei volatile definiert werden, da ansonsten der Optimizer die Zugriffe aus der main Funktion auf die Variable wegoptimiert.

    Interrupt-Programmierung hat so seine Tücken!

    Code:
    volatile uint8_t timer_flag;
    
    ...
    
    ISR(TIMER2_OVF_vect) {   // timer2 overflow
       ...
       counter_2ms++;
       if (counter_2ms >= WHILE_1_TIME_GRID) {
         timer_flag = 1;
         counter_2ms = 0;
       }
    }
    
    ...
    
    int main() {
      ...
    
      while (1) {
        if (timer_flag) {
          floor_measure_iw();
          laufstall();
          timer_flag=0;
        }
      }
    }

  3. #63
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    Hast Du gesehen, dass ich den Timer AUSSCHALTE?
    Die Lisbeth2010

  4. #64
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    Ach ja, hier noch der freeRTOS Link:
    http://elk.informatik.fh-augsburg.de...icz_thesis.pdf
    Die Lisbeth2010

  5. #65
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    motco_setPosition hängt von den aktuellen Odometriewerten ab. Du solltest motco_resetOdometry(0, 0) vorher aufrufen, damit motco_setPosition(-20,-20, 20) die Räder rechts und links um 20 Ticks zurückgedreht.

  6. #66
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    //motco_setSpeed(-50, -50);
    motco_resetOdometry(0, 0);
    motco_setPosition(-20, -20, 20);
    motco_update();

    ... geht auch nicht!
    Die Lisbeth2010

  7. #67
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    Gegenprobe:
    motco_setSpeed(-50, -50);
    //motco_resetOdometry(0, 0);
    //motco_setPosition(-20, -20, 20);
    motco_update();
    ...geht!
    Die Lisbeth2010

  8. #68
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    Geht denn Folgendes?
    motco_resetOdometry(20, 20);
    motco_setPosition(0, 0, 20);

  9. #69
    Benutzer Stammmitglied
    Registriert seit
    17.05.2010
    Beiträge
    37
    motco_resetOdometry(20, 20);
    motco_setPosition(0, 0, 20);
    //motco_setSpeed(-50, -50);
    //motco_resetOdometry(0, 0);
    //motco_setPosition(-20, -20, 20);
    motco_update();

    ... geht auch nicht!

  10. #70
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    "... geht auch nicht!" heisst er zuckt nicht einmal - oder bewegt er sich so wie er nicht soll?

Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad