-         
+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Software Bug?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.05.2004
    Beiträge
    41

    Software Bug?

    Hallo,

    Dieses ist mein program:
    ====================
    define a byte[8]
    define b byte[9]

    #MeinFunc
    a = 77
    b = 77
    if (a=b) then goto FuncEnde
    print "Fehler: a ungleich b" 'dieses soll niemals passieren
    #FuncEnde
    return
    ====================

    Ab und zu wenn ein ACS interrupt actief ist erscheint:

    "Fehler: a ungleich b"

    (a und b werden NICHT benutzt im interrupt)

    Hat jemand auch mahl so etwas mitgemacht?

    Was mach Ich falsch hier? Oder ist das ein systeem-software fehler?

    Grusse

    Henk (aus Holland)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.788

    IRQ-Fehler?

    Hi "rnhvw",

    was Dein Fehler ist, weiß ich auch nicht.
    Falls Du das LCD-Display am RP5 betreibst, ist häufig der Bezeichner "lcd_param" für Byte[8] belegt, so dass eine Doppelbelegung mit Bezeichner "a" vorliegen könnte.

    Gruß Dirk

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.05.2004
    Beiträge
    41
    Hallo Dirk

    Ich hab nur der Robby ohne etwas drauf oder dran, und habe verschiedene andere variabelen getested und bekomme immer dasszelbe Resultat.

    Henk

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    19.05.2004
    Beiträge
    41
    Hallo,

    Ich hab mein Program nogmal grundlich untersucht. und entschliesse daraus dass es sich wahrscheinlich um ein ernsthafter Operating-system Fehler handelt.

    Wenn Ich im Hauptprogram ein IF statement benutze, z.B:

    #LOOP
    A=77
    B=77
    IF (A=B) THEN GOTO LOOP <<====
    PRINT "A=";A 'Soll NIEMALS passieren
    PRINT "B=";B 'Soll NIEMALS passieren
    GOTO LOOP

    und AUCH ein IF statement im Interrupt function benutze Z.B.

    IF 3=3 then C=27

    dann erscheint ab und zu den Printout:
    A=77
    B=23
    oder
    A=23
    B=77

    Dann bekomt oder A oder B ab und zu die Wert von C (27) !!!

    Ich glaub dass beim anfang von dem interrupt function die Microcontroller
    accumulator (oder sonstige register) nicht gespeichert und am ablauf der Interrupt wieder zuruck gesetzt werden.

    Wenn Ich mich nicht irre, (dass hoffe Ich) dann ist dass doch ein ziemlich ernsthafter Sache.

    Grusse

    Henk

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    19.05.2004
    Beiträge
    41
    Rectification:

    IF 3=3 then C=27

    sollte sein

    IF 3=3 then C=23

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.788

    IRQ-Fehler im CC1-Betriebssystem?

    Hi "rnhvw",

    ich habe Probleme mit Deinen Beispielen.
    Vielleicht solltest Du doch 'mal ein konkretes Projekt vorstellen, in dem Du auf den "Fehler" aufmerksam geworden bist!
    Eine meiner Fragen ist z.B., ob Du auch in der Interrupt-Routine die Bytes [8] und [9] benutzt (ich glaube das nicht wirklich!)?
    Kannst Du Deine ACS-Interrupt-Routine hier einmal komplett posten?

    Gruß Dirk

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.04.2004
    Beiträge
    24
    Hi,

    ich denke im Interrupt wird deine Variable überschrieben... und der Interrupt kann ja ab und zu deine loop unterbrechen gerade for der if abfrage in der loop.......

    Is der Fehler denn nur mit aktivem interrupt??? dann such im interrupt was dort passiert...vieleicht überschreibt ja deine variable C im Interrupt deine variable B wegen falscher Ram zuweisung......

    Bye
    M.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.12.2003
    Alter
    26
    Beiträge
    1.187
    Probier doch einfach mal:

    #MeinFunc
    a = 77
    b = 77
    if not a=b then print "Fehler: a ungleich b" else goto FuncEnde
    #FuncEnde
    return
    Back on the road again...

    Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.12.2003
    Alter
    26
    Beiträge
    1.187
    Zu den Fehlern: Das C****d-Betriebssystem hat so einige bugs. Umso länger man die CC proggt, umso mehr findet man...
    Back on the road again...

    Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    19.05.2004
    Beiträge
    41
    Hallo robotiker,

    Ich hab ein einfaches Basic Program Beispiel zugefugt.
    Ich bin uberzeugt das es sich um ein Bug handelt, aber habe auch eine ganz einfache losung dazu gefunden.
    Schau mal dass Beispiel an.

    Grusse

    Henk
    Angehängte Dateien Angehängte Dateien

+ Antworten

Berechtigungen

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