Port BIt Invertieren ?

Gast #228426
Lesenswert?
• ▲
▼
Hallo @ All,
also es ist ein 90S2313.
Hier mal etwas mehr Infos zu meinem Problem.
Die Schaltung soll mal später in eine Modellfeuerwehr.
Ich habe dann verschiedene Lichtmuster, z.B. 2 Rundum Lichter die
asynchron blinken, Blinker recht Blinker links bzw. Warnblinker,
Frontblitzer, Scheinwerfer + Rücklicht und Bremslicht.
Jetzt lasse ich in einer Schleife alle Blinkmuster dauerhaft laufen.
Bei einem Tastendruck will ich dann nur den Port (DDBx) deaktivieren
bzw. beim nächsten Tastendruck wieder aktivieren. Um somit dann die
Funktion zu steuern.

Gruß Ingo
Gast #228429
Lesenswert?
• ▲
▼
Hi

Der code von oben invertiert 1 Bit.Wenn du das komlette Register
invertiern willst müsste es so aussehen

     in r16,Port
     ldi r17,255    ($FF)
     eor r16,r17
     out Port,r16

Die AVRs haben keine Befehl XOR mit Konstante deshalb der Umweg mit
r17. Wobei r17 nicht zwingend ist.
Gast #228430
Lesenswert?
• ▲
▼
Wenn man den ganzen Port toggeln wil, geht's auch einfacher:

in r16, Port
com r16
out Port, r16

Alternativ kann man sich natürlich den Port-Status auch in einem
normalen Register merken, sodaß auch noch das in wegfallen kann.

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.