Forum: Mikrocontroller und Digitale Elektronik Wieso funzt sbi/cbi nicht?


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 Stefan Pfister (Gast)


Lesenswert?

Hallo!

Kann mir jemand sagen, wieso immer ein Fehler auftritt wenn ich
folgenden Code mit AVRStudio compilieren will?

sbi TCCR1B,7   error : Illegal argument type or count
cbi TIFR,5     error : Illegal argument type or count
sbi EECR,2     hier aber nicht

In der Atmega8 def.inc Datei sind alle einträge vorhanden. An was liegt
das?

von Joerg Wunsch (Gast)


Lesenswert?

Ohne nachzugucken: am eingeschränkten Registerbereich für SBI/CBI.

von Stefan Pfister (Gast)


Lesenswert?

Ach so, funzen die nur für den unteren Bereich? Wie kann ich das lösen,
ohne ein ganzes Register zu beschreiben, oder eine Bitmaske zu setzen??
Od geht das gar nicht ohne? Wie macht man das am einfachsten?

von Jochen (Gast)


Lesenswert?

SBI und CBI funktioniren meines wissens nach nur bei I / O Registern.

Also bei Ports.

In den registern z.b. r16 funktioniren SBR und CBR allerdings nur mit
Bitmaske.

Jochen

von Stefan Pfister (Gast)


Lesenswert?

Wiso gibts denn bei EECR keinen Fehler, das ist ja auch kein Port...

von Joerg Wunsch (Gast)


Lesenswert?

Klar ist EECR ein IO-Register.  TIFR und TCCR1B sind auch welche.

Warum liest Du nicht einfach die Appnote über die Befehle?

Syntax:      Operands:
CBI A,b      0 <= A <= 31, 0 <= b <= 7

Damit sind die gängigen Ports (PORTx, PINx, DDRx) allesamt drin sowie
einige andere wichtige IO-Register.  Viele Steuerregister jedoch sind
nicht mehr im gültigen Wertebereich.  Dort mußt Du den umständlichen
Weg wählen.  Alternativ kannst Du Dich natürlich dran erinnern, daß
alle IO-Register auch memory-mapped zugegriffen werden können (d. h.
sie werden mit Offset 0x20 in den SRAM-Bereich abgebildet).

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.