- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 11

Thema: Bascom Bug in "Dim Variable as Eram Byte"

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von raidy
    Registriert seit
    26.09.2006
    Ort
    bei Stuttgart
    Beiträge
    52

    Warum ich BASCOM-Fehler geschrieben habe?

    Der Fehler macht sich dadurch bemerkbar, dass geschriebene Werte beim Abruf nicht mehr da sind.
    Entgegen obiger Aussage glaube ich jetzt, dass es schon eher am Bascom liegt, denn bei gleichem Programm in C geschrieben tritt der Fehler nicht mehr auf. Aber selbst wenns am AVR liegen sollte, dann könnte der Bascom-Compiler einfach das erste Byte "unterschlagen" und erst beim 2.tem Byte aufsetzen. Dies soll aber kein Rüffel sein, den der Entwickler von Bascom hat einen erstklassigen Compiler geschrieben.
    Geändert von raidy (25.10.2011 um 13:52 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von raidy Beitrag anzeigen
    Entgegen obiger Aussage glaube ich jetzt, dass es schon eher am Bascom liegt, denn bei gleichem Programm in C geschrieben tritt der Fehler nicht mehr auf.
    Bei möglicherweise fehlerhaft übersetztem Code, der nicht mal gezeigt wird, von einem Bascom-Fehler auszugehen ist abwegig.
    Meistens sitzt der größte Bug vor dem µC.
    Wie man aus der Variable Akkuleer vermuten kann, wird der µC evtl. im Grenzbereich seiner Spannungsversorgung betrieben, da wäre z.B. der BOD sinnvoll, der eben per Fuse einzuschalten ist, wird hier nicht gesagt ob die an oder aus ist. Gleichwohl vermisse ich Info ob das ein und dieselbe HW ist, in die Bascom und C geflasht wird. Wenn's verschiedene HW ist, kann der Fehler genauso dort stecken, fehlende Pufferkondensatoren, usw.

  3. #3
    Benutzer Stammmitglied Avatar von raidy
    Registriert seit
    26.09.2006
    Ort
    bei Stuttgart
    Beiträge
    52
    Es war ein und dieselbe HW. Der Attiny25 wird zwischen 4,2 und 3,5V betrieben. Bei 3,5V wird Akkualarm ausgegeben. Wie ich aber hier: https://www.roboternetz.de/community...l=1#post529013 erfahren habe, handelt es sich um einen Bug des avr, welcher im Genzspannungsbereich das Byte 0 des Eprom verlieren kann. Wobei ich diesen Bereich nur erreiche, wenn die Spannung ausgeschaltet wird und der Kondesnator sich entlädt, während das Programm munter wietertickt.
    Trotzdem lasse ich Byte 0 des Eprom mit einem Dummywert reserviert, weil es dann ja gut läuft. Außerdem stoppe ich das Programm jetzt, sobald ein Akkualarm anliegt. Ich habe es hier reingeschrieben, damit andere nicht in die gleiche Falle tappen.
    Es ist also KEIN Fehler von Bascom sondern einer des AVR. Dass es unter C nie passiert ist, kann ich mir nur sehr bedingt erklären, will aber hier keine Theorien aufstellen. Nur hatte ich beim googeln nach dem Fehler keinen Hinweis gefunden. Nachher ist man immer schlauer.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Ist auch 'ne Frage des HW-Designs, Einsatz des BOD ist sinnvoll, das wurde Dir bereits geraten. Außerdem könnte man in gestörter Umgebung den µC mit 'ner Diode und einem Kondensator von kurzen Spannungseinbrüchen entkoppeln, Diode vorzugsweise Schottky.

  5. #5
    Benutzer Stammmitglied Avatar von raidy
    Registriert seit
    26.09.2006
    Ort
    bei Stuttgart
    Beiträge
    52
    Zitat Zitat von MagicWSmoke Beitrag anzeigen
    Ist auch 'ne Frage des HW-Designs, Einsatz des BOD ist sinnvoll, das wurde Dir bereits geraten. Außerdem könnte man in gestörter Umgebung den µC mit 'ner Diode und einem Kondensator von kurzen Spannungseinbrüchen entkoppeln, Diode vorzugsweise Schottky.
    Stimmt. Aber der ganze Mist musste in eine 12mm Röhre, da tut jedes Bauteil weh. So wie es jetzt geht, läuft es gut. Trotzdem Danke für die Tipps.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von raidy Beitrag anzeigen
    Stimmt. Aber der ganze Mist musste in eine 12mm Röhre, da tut jedes Bauteil weh. So wie es jetzt geht, läuft es gut. Trotzdem Danke für die Tipps.
    Klar, bitte. Wenn's SMD sein darf, keramische Kondensatoren in passender Kapazität (10-50µF) und Spannung sind recht klein, würden auch in D12mm locker Platz haben, Diode sowieso.

  7. #7
    Benutzer Stammmitglied Avatar von raidy
    Registriert seit
    26.09.2006
    Ort
    bei Stuttgart
    Beiträge
    52
    Zitat Zitat von MagicWSmoke Beitrag anzeigen
    Klar, bitte. Wenn's SMD sein darf, keramische Kondensatoren in passender Kapazität (10-50µF) und Spannung sind recht klein, würden auch in D12mm locker Platz haben, Diode sowieso.
    Übrigens ein Dankeschön für den BOD Hinweis. Das habe ich mir noch nie angesehen, ist aber eine feine Sache.

Ähnliche Themen

  1. Ämfänger braucht hilfe "Byte nach BCD auf Portx"
    Von dremeier im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 07.09.2008, 16:03
  2. Byte wird "rückwärts" ausgegeben
    Von ikarus_177 im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 31.07.2008, 12:55
  3. Jeweils 2 Bit mit einem byte "verknüpfen"
    Von kalletronic im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 24.11.2007, 21:00
  4. Ziffern aus einer Integer Variable "extrahieren"
    Von coCo im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 17.05.2007, 21:09
  5. "byte" in Eclipse einfärben
    Von cumi im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 11.05.2006, 16:09

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress