Forum: Mikrocontroller und Digitale Elektronik wie bit ändern in nicht-IO register?


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.
von fksystems (Gast)


Lesenswert?

Ich wollte in dem MCUCR-register ein bit von 0 auf 1 schalten. aber der
rest des registers soll so bleiben.

eigentlich wäre da ja sbi schön. aber das geht ja nur bei
io-registern.

wie mache ich das jetzt bei einem nicht io-register?

von Jörg Wunsch (Gast)


Lesenswert?

MCUCR ist ein IO-Register...

Anyway, die generische Lösung ist: IO-Register einlesen, Bit setzen,
IO-Register rückschreiben.

von fksystems (Gast)


Lesenswert?

komisch. aber warum sagt bei

sbi MCUCR, 5

dann der assembler/kompiler "error: illegal argument type or count" ?

von mmerten (Gast)


Lesenswert?

die sbi/cbi sind auf den I/O Bereich 0x00-0x1F beschränkt. I/O Register
in belibieges register R16-R31 laden bit entsprechend manipulieren,
zurückschreiben und fertig :-)

von fksystems (Gast)


Lesenswert?

hm.. und noch was:
was ist eigentlich der unterschied zwischen sbi und sbr. verändern
nicht bei ein einzelnes bit. was genau ist da der unterschied?

von Frank Linde (Gast)


Lesenswert?

SBR ist genau die Antwort auf Deine Frage; mit diesem Befehl kannst Du
einzelne (oder mehrere) Bits in einem der Register R16-R31 setzen.

sbr r16,0b00001000

setzt z.B. Bit 3 in Register 16.

Gruß, Frank

von Frank Linde (Gast)


Lesenswert?

...

SBI wirkt auf die ersten 32 I/O-Register, SBR dagegen auf die oberen 16
Allzweckregister.

Gruß, Frank

von Jörg Wunsch (Gast)


Lesenswert?

Wußte noch gar nicht, daß es auch ein SBR gibt...  Aber ganz zufällig
hat SBR den selben Opcode wie ORI. ;-)  (Dort hätte ich es auch
gesucht.)

von Frank Linde (Gast)


Lesenswert?

Tja, die wundersame Befehlsvermehrung bei ATMEL ist immer wieder für
Überraschungen gut. ;-)

Gruß, Frank

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]
  • [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.