I/O PORT Maskierung

Gast #2801186
Hallo,
ich möchte bei meinem ATtiny26 am PORT A die PINs 5,6,7 als Ausgang 
nutzen und die PINs 1,2 und 4 als Eingang.

Wie kann ich nun die PORT PINs 5,6 und 7 beschreiben, ohne das die 
anderen PINs beeinflusst werden?

Normal geht sowas ja mit der ODER verknüpfung, aber ich kann den PORTA 
leider nicht ODER mit z.B. R16 verküpfen.

or PORTA, r16

was muss ich tun?
Gast
Hi

>Wie kann ich nun die PORT PINs 5,6 und 7 beschreiben, ohne das die
>anderen PINs beeinflusst werden?

Port einlesen
Bits verändern
Port augeben

oder cbi/sbi benutzen.

MfG Spess
Gast
> oder cbi/sbi benutzen.

Daran hab ich auch gedacht, aber es scheint mir sehr aufwändig jede LED 
einzeln Ein- bzw. Aus zu schalten...

> Port einlesen
> Bits verändern
> Port augeben

So möchte ich vorgehen, ja. Aber ein PORT teilt sich ja Ein und 
Ausgabe...
Oder könntest du mir das genauer erklären, was du damit sagen möchtest.
Gast
Hi

>Oder könntest du mir das genauer erklären, was du damit sagen möchtest.

in r16, PortA         ; Port einlesen
andi r16, 0b00011111  ; Bit 5,6,7 löschen
ori r16,0bxyz00000    ; Bits setzen
out PortA,r16

MfG Spess
123456 schrieb:
>> oder cbi/sbi benutzen.
>
> Daran hab ich auch gedacht, aber es scheint mir sehr aufwändig jede LED
> einzeln Ein- bzw. Aus zu schalten...

na ja. übertreib mal nicht.
Aufwändig geht anders. Äufwändig sind 4500 Zeilen Source Code zur 
Bestimmung, wie genau der Verputz geometrisch in eine Fensterlaibung 
hineingezogen werden muss und welches Volumen sich daraus ergibt.
3 LED einschalten sind 3 Anweisungen.

>
>> Port einlesen
>> Bits verändern
>> Port augeben
>
> So möchte ich vorgehen, ja. Aber ein PORT teilt sich ja Ein und
> Ausgabe...

ja und?

> Oder könntest du mir das genauer erklären, was du damit sagen möchtest.

Port in Register einlesen
gewünschte Bits setzen bzw. löschen (mittels OR oder AND, je nachdem)
Register wieder zurückschreiben

solltest du eigentlich hinkriegen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.