mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik sbi und cbr bei PORTD und DDRD variabel machen ?


Autor: Frank Wolf (Gast)
Datum:
Angehängte Dateien:

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

Autor: :-) (Gast)
Datum:

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

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.