-         

Ergebnis 1 bis 3 von 3

Thema: [gelöst] Asuroprogramme bleiben hängen

  1. #1

    [gelöst] Asuroprogramme bleiben hängen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute

    Ich habe vor 2 Tagen einen Asuro bekommen.

    Ich möchte damit meiner Katze eine Freude machen (und mir auch).
    Das heißt, er soll einfach im Zimmer herumfahren; wenn er wo anstößt umdrehen, sich vllt. ab und zu drehen usw.
    (später sollte er sich automatisch zu einer Ladestation bewegen und Ultraschallsensoren bekommen)

    Ich programmiere unter Debian, verwende AsuroLib-v280rc1, flashe mit asuroflash und als Terminal verwende ich cutecom.

    Leider bleiben alle kompliziertern Programme irgendwann hängen (außer im Kreis fahren und so)

    Hier ein Beispielprogramm, welches ich schon unendlich oft modifizierte:

    Code:
    #include "asuro.h"
    #include <stdlib.h>
    #define SPEEDMAX 180
    
    void FwdAccelerate(void)
    {
      MotorDir(FWD,FWD);
      MotorSpeed(SPEEDMAX,SPEEDMAX);
    }
    
    void MotorRwdL(void)
    {
      MotorDir(RWD,FWD);
      MotorSpeed(SPEEDMAX,SPEEDMAX);
    }
    
    int main(void)
    {
      unsigned char t1=0, t2=0;
      char text[16];
    
       Init();
       SerPrint(" Test\r\n");
    
       while(1)
      {
          t1 = PollSwitch();
          t2 = PollSwitch();
    
         if (t1 == 0 && t2 == 0 && t1 == t2)
          {
            SerPrint("\r\n FwdAccelerate \r\n");
            FwdAccelerate();
          }
         else if (t1 != 0  && t2 != 0 && t1 == t2)
        {
           itoa(t1, text, 10);     /* Tastenwert senden */
           SerPrint(text);
           SerPrint("\r\n"); /* Zeilenvorschub */
    
            MotorRwdL();
            Msleep(500);
        }
    
      }
    return(0);
    }

    Eine Taste habe ich unabsichtlich mit dem Lötkolben zerstört; habe ihn mit einen Mikroschalter mit Drahtbügel ersetzt.
    Wenn ich nun irgendeinen Taster drücke (meisten >=3 mal), fällt der Asuro in eine Endlosschleife oder stürzt ganz ab. (auch ohne SerPrint)
    (und dann flackert die Status-LED gelb! )

    Terminal-Output:

    Test

    FwdAccelerate

    FwdAccelerate

    FwdAccelerate

    FwdAccelerate
    7
    Test

    FwdAccelerate
    8

    FwdAccelerate
    \0x8dVLVLVLVLVLVLVLVLVLV
    VLVLVLVLVLVLVLVLVLVLVLV......


    Der Tastertest funktioniert einigermaßen; manchmal bekomme ich auch einen anderen Wert.
    1: Aber ist das ein Grund, dass das Programm gleich abstürzt?
    Bei dem Programm müsste das doch egal sein, es reagiert ja nur auf t1=t2=0 und t1=t2= irgendwas.

    Wie man im Terminal-Output sieht, stürzt das Programm auch manchmal ab und startet dann neu.

    Die Akkus sind NiMH und neu (~5 V auch bei Belastung)

    2: Hat jemand von euch ähnliche Probleme und eine Lösung?
    3: Wie zuverlässig ist der Microcontroller bezügl. Abstürze?

    Ein anders Problem: Zum flashen musste ich ungefähr 1 cm zum Sender.
    Nachdem ich den R17 auf 100 Ohm wechselte, reichen 10cm, wobei das Poti schon ganz nach rechts gedreht ist.
    4: Sollte das nicht weiter reichen?

    Bitte helft mir mit zahlreichen Antworten.

    Danke !

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Die Meldung "VLVL.." mit blinkender StatusLED bedeutet Voltage Low und meint "Batteriespannung zu niedrig". Falls die Batterien/Akkus voll sind könnte ein Übergangswiderstand am Batteriehalter die Ursache sein. Oder bei Akkubetrieb ist der Jumper JP1 nicht überbrückt. Eher unwahrscheinlich ist einen falsche Bestückung/schlechte Lötung von R12/R13 und IC1:Pin28. (Im Handbuch Seite 29 Punkt 6.3.3)

    Gruß

    mic

    [Edit]
    Neustart des Programms deutet auch auf Spannungseinbrüche hin. Lötstellen überprüfen, Schalter defekt?

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Vielen Dank für deine schnelle Antwort !

    Der R12 war ein bisschen angekratzt.
    So hab ich ihn einfach durch einen Widerstand mit 5% Toleranz ersetzt.
    Jetzt funktioniert es besser, obwohl er trotzdem manchmal abstürzt.

    Sind 5% Toleranz zu viel?

    freundliche Grüße

Berechtigungen

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