sbi und cbr bei PORTD und DDRD variabel machen ?

Gast #48844
Lesenswert?
• ▲
▼
Guten Abend,
jetzt häng ich schon 2 jahre mit Assembler an dem 2313...
... und scheine eintweder einen Blackout zu haben oder
habe immer noch nix begriffen...

also folgende Problematik:
ich habe an einem 2313 2xSHT11 verbunden (sind so lala I2C sensoren)
SCK an PD6 - beide und (weil die sensoren keine unterschiedliche
Anschriften haben) einen auf PD4 einen auf PD5 ...

jo, war auch kein thema - der rcall "GetTempAndHumid" ist fertig,
aber nur für einen sensor (ist abgekupfert)... jetzt will ich
beide Sensoren über einen Parameter steuern so in der Art:
...
ldi parameter, PD4
rcall GetTempAndHumid
...

aber... in "GetTempAndHumid" sind ne menge cbi's und sbi's:
...
cbi   PORTD, PD4    ;low output
sbi   DDRD, PD4    ;output
...

und sbi und cbi will ja nicht mit Registern grrr
was jetzt bin ich malle oder muss ich jetzt jeden
sbi und cbi einzeln so umgehen:
...
cpi    parameter, 4
brne   ist5
cbi   PORTD, PD4    ;low output
rjmp war4
ist5:
cbi   PORTD, PD5    ;low output
war4:
...
das sieht zu schmutzig aus!

Bitte um Erlösung!  MfG, Frank Wolf
Angehängte Dateien:
Gast #48845
Lesenswert?
• ▲
▼
Lad den Portinhalt in ein Register und nimm dort mit AND/OR die
entsprechenden Veränderungen vor. Also einfach

in r16,PORTD
and r16,parameter
out PORTD,r16

Wobei 'parameter' natürlich nicht die Bitnummer sondern die
Bitwertigkeit enthalten muss.. Und bei AND ans Invertieren denken!

Antwort schreiben

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.

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.