www.mikrocontroller.net

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


Autor: Stefan Pfister (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne nachzugucken: am eingeschränkten Registerbereich für SBI/CBI.

Autor: Stefan Pfister (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Pfister (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wiso gibts denn bei EECR keinen Fehler, das ist ja auch kein Port...

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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]
  • [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.