mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Frage / Watchdog-Beispiel Tiny85


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Rainer U. (r-u)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liebe alle,

ich mach gerade ein bisschen ASM/C (wegen Arduino-Zeugs) und stolpere 
über diese Notationen "0<<irgendwas"

Auszug aus dem Datenblatt des Tiny85, Kapitel 8.4.2 ASM Code example:
...
; Write logical one to WDCE and WDE
; Keep old prescaler setting to prevent unintentional Watchdog Reset
in
 r16, WDTCR
ori
 r16, (1<<WDCE)|(1<<WDE)
out
 WDTCR, r16
; Turn off WDT
ldi
 r16, (0<<WDE)
out
 WDTCR, r16
ret

Wie sollen diese letzten 4 Zeilen funktionieren um ein einzelnes Bit auf 
0 zu setzen? Also was bedeutet "ldi r16, (0<<WDE)" ? Ist das ein Fehler 
im Datenblatt oder habe ich es nicht verstanden? Denn eigentlich sollen 
die oben mühsam erhaltenen prescaler-Bits ja weiterhin erhalten bleiben, 
oder?

: Bearbeitet durch User
Autor: H.Joachim S. (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die schreiben ne 0 nach WDTCR (soweit ich mich erinnere ist das auch 
richtig).
Die Schreibweise (0<<WDE) bringt natürlich nichts. Bestimmt aus 
irgendetwas kopiertem übriggeblieben :-)

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also was bedeutet "ldi r16, (0<<WDE)" ?
Es soll klar&deutlich gemacht werden, dass WDE auf 0 gesetzt, also der 
Watchdog abgeschaltet wird; die alten Vorteiler-Bits sind so natürlich 
vergessen.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
>> Also was bedeutet "ldi r16, (0<<WDE)" ?
> Es soll klar&deutlich gemacht werden, dass WDE auf 0 gesetzt, also der
> Watchdog abgeschaltet wird; die alten Vorteiler-Bits sind so natürlich
> vergessen.

Das schriebe man dann aber eigentlich explizit als
"andi r16, ~(1 << WDE)"

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher nicht - im ersten Fall wird r16 mit 0 geladen, im zweiten mit $F7 
ver-undet.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> Sicher nicht - im ersten Fall wird r16 mit 0 geladen, im zweiten mit $F7
> ver-undet.

Ach was?

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:
> S. Landolt schrieb:
>> Sicher nicht - im ersten Fall wird r16 mit 0 geladen, im zweiten mit $F7
>> ver-undet.
>
> Ach was?

Gewiss - und im ersten Fall wird der Watchdog abgeschaltet, im zweiten 
eben nicht.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bin - nach Lektüre - überredet.

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay.
Und für eventuelle Mitleser sei die Datenblattstelle nachgereicht:

1. In the same operation, write a logic one to WDCE and WDE. A logic one 
must be written to WDE regardless of the previous value of the WDE bit.
2. Within the next four clock cycles, in the same operation, write the 
WDE and WDP bits as desired, but with the WDCE bit cleared.

Autor: Rainer U. (r-u)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
H.Joachim S. schrieb:
> Die Schreibweise (0<<WDE) bringt natürlich nichts. Bestimmt aus
> irgendetwas kopiertem übriggeblieben :-)

Das beruhigt mich :-)

Danke auch für die anderen Beiträge.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.