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

Thema: 8 Sek WDT beim Atmega48v

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35

    8 Sek WDT beim Atmega48v

    Anzeige

    Praxistest und DIY Projekte
    Moin,

    Ich habe die neuste Version von Bascom und wollte eben ein altes Programm kompilieren, was früher ging, aber nun lässt mich Bascom nicht mehr "Config Watchdog = 8192" nutzen und es wirft eine Fehlermeldung mit "...[8192]..." (ich gucke morgen bei der Arbeit nochmal, welcher Fehlercode es genau war) für die Zeile aus. Nun haben ja nicht alle AVRs einen Prescaler von 1024k, um auf die 8192ms zu kommen, also habe ich noch einmal ins Datenblatt geguckt und der Atmega48 kann das.
    Daraufhin habe ich mir dann mal die m48def.dat angeguckt und ich glaube da stehen auch falsche Werte drin.
    Dann wollte ich die WDP0 bis WDP3 Bits im Register mit "WDP0 = 1" und "Reset WDP0" usw. selbst auf 1001 setzen, um den WDT auf 8 Sek zu stellen, aber die Formulierung mag Bascom auch nicht, obwohl WDP0 bis WDP3 richtig farblich hervorgehoben werden auch die Abkürzung auch so in der m48def.dat für die jeweiligen Bits steht.

    Kann sich da mal vielleicht jemand die m48def.dat ansehen und gucken, ob da wirklich was nicht stimmt? Ich habe die selbst versucht abzuändern, aber dann passte das Timing des WDTs überhaupt nicht mehr und der WDT Interrupt wurde ständig ausgeführt.

    Was mich auch wunderte war, dass wenn ich die Definitionsdatei vom atmega48 und dem atmega48p vergleiche, unter der gleichen Einstellung für den WDT bei dem normalen atmega48 die Prescalerwerte in Tausenderschritten (also 2 bis 1024) angegeben werden und bei dem atmega48p die daraus resultiende Zeit in Millisekunden (also 16 bis 8192).

    Edit:
    Kann es sein, dass die Bits nicht direkt ansprechen kann und stattdessen "WDTCSR.WDP0 = 0" schreiben muss? Muss ich morgen auch noch einmal testen.
    Geändert von Dunuin (27.09.2011 um 22:44 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Dunuin Beitrag anzeigen
    ..aber nun lässt mich Bascom nicht mehr "Config Watchdog = 8192" nutzen und es wirft eine Fehlermeldung mit "...[8192]..."
    Ja, das ist ein Bug, getestet auf 2.0.7.1.
    Dann wollte ich die WDP0 bis WDP3 Bits im Register mit "WDP0 = 1" und "Reset WDP0" usw. selbst auf 1001 setzen,
    Wenn Du nicht weißt, daß WDP0 eine Konstante ist, der Du nichts zuweisen kannst und die in Verbindung mit dem Zielregister verwendet werden muss, dann würde ich das Ändern der .dat lieber bleiben lassen, denn das wird dann nix.
    Der Bug hat aber zur Folge, daß:
    Code:
    Config Watchdog = 1024
    den WDT tatsächlich auf 8 Sekunden setzt.
    Um den Code bei 'ner neuen Version nicht ändern zu müssen, wär's hier sinnvoll das Register selbst zu setzen.
    Das muss mit einer "timed sequence" gemacht werden, dies hier ist die Entsprechung des Config Watchdog Befehls:
    Code:
    MCUSR = MCUSR And NBits(WDRF)
    WDTCSR = Bits(WDP3 , WDCE , WDE , WDP0)
    WDTCSR = Bits(WDP3 , WDP0)
    Edit:
    Ich habe die selbst versucht abzuändern, aber dann passte das Timing des WDTs überhaupt nicht mehr und der WDT Interrupt wurde ständig ausgeführt.
    Kommt darauf an, was geändert wurde.
    Wenn Du in der .dat nach der Zeile wdvalue ... suchst und ihn durch diese ersetzt, dann klappt's auch:
    Code:
    WDVALUE=16,32,64,128,256,512,1024,2048,4096,8192
    Sonst muss nix geändert werden.
    Geändert von MagicWSmoke (28.09.2011 um 10:34 Uhr)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    05.01.2010
    Beiträge
    35
    Danke. Das versuche ich dann nachher mal.

Ähnliche Themen

  1. Atmega48V+128khz+RC5send?
    Von Dunuin im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 19.03.2011, 11:23
  2. FuseBits beim USB-AVR Lab ?
    Von iBot im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 05.06.2010, 12:50
  3. Busfrequenz beim PCF8574 und beim PCF8591?
    Von roboter im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 17.04.2007, 14:34
  4. Antworten: 9
    Letzter Beitrag: 14.03.2005, 20:08
  5. Takt beim I2C-Bus
    Von Frank im Forum Kopfnüsse / Wissensquiz
    Antworten: 4
    Letzter Beitrag: 18.10.2004, 10:07

Berechtigungen

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

Solar Speicher und Akkus Tests