- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 13

Thema: Odometriesensoren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2012
    Beiträge
    14
    Danke ich probier das mit dem Testprogramm mal aus

    ich stehe gerade vor dem Problem, dass Asuro sich nach einigen malen Turn aufhängt:

    Code:
    int g_iTurnVal = 90;
    ...
    void MoveOn(void)
    {
    	if(g_iFieldCounter % 7 == 0)
    	{
    		Turn(g_iTurnVal, 100);
    		Go(FIELDSIZE, 100);
    		g_iFieldCounter++;
    		AnalyseField();
    		SerWrite("Turning: ", 9);
    		PrintInt(g_iTurnVal);
    		Turn(g_iTurnVal, 100); //HIER hängt er sich auf und dreht sich ununterbrochen 
    		SerWrite("Got It", 6);
    		g_iTurnVal *= (-1);
    	}
    	Go(FIELDSIZE, 100);
    	g_iFieldCounter++;
    }
    Das Problem kommt immer nur vor, wenn eine andere Variable g_iRow der wert 7 annimmt. g_iRow wird auch benutzt um ein Array als Index anzusprechen.
    g_iRow hat jedoch überhaupt nichts mit Turn(g_iTurnval, 100) zu tun, oder liege ich da falsch?

    können Zugriffsverletzungen an anderen Stellen im Program dazu führen, dass Asuro bei Turn() "durchdreht"?

    Ich bin ratlos
    Habt ihr eine Idee?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von -Bob- Beitrag anzeigen
    können Zugriffsverletzungen an anderen Stellen im Program dazu führen, dass Asuro bei Turn() "durchdreht"?
    Wenn du "zufällig" Speicher beschreibst (Lesen ist, von Fehlern durch inkorrekte Werte mal abgesehen, kein Problem), kann alles mögliche passieren.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Ich wurde diese Werten g_iRow und g_iFieldCounter auch Zurück senden, damit du kontrollieren kannst was er genau an das Moment im Kopf hat. Könnte aber zu viel Daten werden mit 2400 B/sek.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2012
    Beiträge
    14
    Problem Solved.

    Ich Idiot hab nen Anfängerfehler gemacht und ein 7-Stelliges Array mit dem Index 7 angesprochen.
    Interressant dass Asuro so komsich reagiert, wenn Zugriffsverletzungen gemacht werden...

    Vielen Dank

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von -Bob- Beitrag anzeigen
    Interressant dass Asuro so komsich reagiert, wenn Zugriffsverletzungen gemacht werden...
    Das ganze ist relativ einfach. Wie schon gesagt: Ungewollte schreibende Zugriffe auf Speicher/Register können undefiniertes Verhalten verursachen. Und undefiniertes Verhalten ist per definition "komisch". Du änderst damit mit hoher Wahrscheinlichkeit irgend eine andere Variable auf einen ungewollten Wert - Und der kann die weitere Ausführung des Programmes beliebig falsch ablaufen lassen.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Ähnliche Themen

  1. Bezeichnung der Odometriesensoren gesucht
    Von Hans Z im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 08.01.2007, 10:42

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress