Bug bei löschen toten codes...

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Bug bei löschen toten codes...

      Hallo mal wieder,

      ich habe einen Bug entdeckt, der mir Kopfzerbrechen bereitet:

      Ich habe auf einem 1281 eine alte Funktion löschen wollen (toten code).
      Wenn ich aber die für die (nicht mehr vorhandene) Sub nötigen Deklarationen und Var-Definitionen löschen will, funktioniert eine andere Funktion nicht mehr.
      Hier funktioniert die Srachausgabe über ein Soundmodul dann nicht mehr.

      Code:

      '**************************************************************************
      '**************** *******************
      '**************** Declare Soft Uart for Co2-Modul *******************
      '**************** *******************
      '**************************************************************************
      Dim N As Integer
      Dim Co2_wert As Word
      Dim Co2_wert_text As String * 18
      Dim Co2_string_to_send As String * 18
      Dim Co2_bytes_to_send(9) As Byte
      ..........................................................................................................

      Diese Dims werden definitv nicht mehr benötigt, wenn ich die aber lösche (allesamt einzeln getestet), schmeißt er eben den Sound raus bzw. die Ansteuerung des Moduls (angesteuert per Soft-Uart).
      Lösche ich auch nur eine dieser Dims, geht es nicht mehr...

      Hat Jemand eine Ahnung, was das sein könnte?

      Ich bin komplett ratlos....brauchte erst mal ein paar Tage, rauszufinden, warum der Sound nicht mehr ging, habe dabei die letzten Codeänderungen per Copy and Paste Stück für Stück wieder "reaktiviert", um den Fehler zu finden.

      Gruss
      Peer
    • Peer Gehrmann schrieb:

      gerne, sind nur 6653 Zeilen....der 1281 ist jetzt zu 92% ausgelastet, was den Speicherplatz angeht
      deinen Sarkasmus? versteh ich nicht.
      Willst du jetzt Hilfe, oder willst du einfach nur einen eventuellen Bug bestätigt bekommen?

      Peer Gehrmann schrieb:

      Auch die Deadcode-Anzeige zeigt nicht an, dass das tot ist
      dann ist es nicht tot?
    • Nur Zur Info:
      Die Bugs (bzw. "Einfrierungen"), an denen ich fast verzweifelt war (ich hatte den Code schon mehrfach stark vereinfacht und aufgeräumt, sowie extrem linearisiert), hatten einen ganz bestimmten Grund:

      Der Bestücker hat die falschen Prozessoren aufgelötet:
      Ich habe 16MHZ geplant und programmiert, die Platinen waren aber aufgrund eines Verwaltungsfehlers mit 8MHz-Typen bestückt...tja, da gingen dann hin und wieder, in undefinierbaren Abständen von Minuten, Stunden oder Tagen ein paar Takte flöten, und die Kiste hatte sich aufgehängt...
      Um das herauszufinden habe ich ein paar Monate herumgetüftelt.
      Am Ende liefen ca. 95% Code trotzdem noch stabil, ein Modus des Lüfters, ausgerechnet der Sensormodus, also Automatikbetrieb, hing nach Stunden oder Tagen.

      Gelehrt hat mich das auch was:
      Wie man code extrem stabil bekommt!
      Jetzt, mit dem richtigen Prozessor, läuft die Kiste dafür extrem stabil, weil ich (fast) alle Engpässe erkennen konnte und entschärft habe.

      Essenz: Also Leute, übertaktet den Prozessor ruhig mal um 100%, dann findet Ihr alle unter Umständen auftretenden Nadelöhre...(Spaß)
    • hi Pluto25,

      genau, ich habe einfach sämtliche Funktionen in Serie gepackt und lasse per Timer nur eine pro Sekunde zu.
      Den Takt kann ich jetzt beliebig steigern.
      Allerding reicht es momentan völlig aus, alles in 13 s. durchlaufen zu lassen.
      So eine Lüftersache ist da ja konplett unkritisch.
      Die Aufheizvorgängw z.B. der Gassensoren liegen so schon bei mir bei 30-60 Sek.
      Display braucht auch nur selten ein update, die Reaktionszeit der Fans liegt auch bei ein paar Sekunden.
      Es ist definitiv nicht realtime.
      Watchdog ist auch dran, sogar extern.
      Aber das ist ja nur der Notfall, falls irgendwo ein i2c mal schief gegangen ist o.ä.