Watchdog ausschalten in Assembler

Gast #213273
Hallo,

also ich versuch jetzt seit Stunden den WDT meines Tiny15 abzuschalten.
Leider beschwert sich das AVR-Studio bei diesem Code immer:
ldi r16, ((1<<WDTOE)||(1<<WDE))
out WDTCR, r16
cbi WDTCR, WDE ; hier kommt der Fehler "Operant 1 out of Range"

Könnte mir jemand weiterhelfen?

Ach ja und wenn ich versuche int0 zu aktivieren
sbi GIMSK, INT0

kommt die selbe Fehlermeldung.

Vielen Dank,

Daniel
#213275
moin moin

cbi und sbi funktionieren nur auf den unteren 32 i/o registern.

also bis adresse 0x20.

das watchdog register liegt bei meinem atmel bei 0x21 und die interrupt
mask bei 0x3b.

daher kannst du auf die register nur mit IN und OUT zugreifen.
also vorher die bits in einem "normalen" register zusammenbasteln und
dann in die steuerregister schreiben.

mfg

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.