mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2-Byte Variable an 2 Ports ausgeben


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mittels avr-gcc 2 Bytes in einer Variable an 2 Ports 
ausgeben. Des weiteren möchte ich an der 16-Bit-Variable die Bits nach 
links bzw. rechts verschieben.


uint16t variable = 0b0001001000010111;




Analog soll dazu auf PortA 00010010
und auf PortB 00010111 ausgegeben werden.


Das "Variablen-->PortRefresh" würde ich in nem Timer-Interrupt 
verpacken, da die Ausgabe nicht so zeitkritisch ist.

MfG

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  chris (Gast)

>ich möchte mittels avr-gcc 2 Bytes in einer Variable an 2 Ports
>ausgeben.

Hmmm, schon mal in ein C-Buch geschaut?

> Des weiteren möchte ich an der 16-Bit-Variable die Bits nach
>links bzw. rechts verschieben.

Dito.

>Analog soll dazu auf PortA 00010010
>und auf PortB 00010111 ausgegeben werden.

Ist das wirklich so schwer?
C-Buch lesen und Tutorial.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

>Das "Variablen-->PortRefresh" würde ich in nem Timer-Interrupt
>verpacken, da die Ausgabe nicht so zeitkritisch ist.

Wenn du schon an so elementaren Dingen wie der Ausgabe von Daten auf 
Ports stolperst, muss du dir über den Timer keine Gedanken machen.

MFG
Falk

Autor: joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann gib ihm doch mal einen Tip und sei nicht so arrogant.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  joe (Gast)

>Dann gib ihm doch mal einen Tip und sei nicht so arrogant.

Das hat nix mit Arroganz zu tun, eher was mit Pädagogik.

Aber weil heute Sonntag ist . . .

>ich möchte mittels avr-gcc 2 Bytes in einer Variable an 2 Ports
>ausgeben.
uint16_t meine_variable;

PORTA = meine_variable;    // untere 8 Bit
PORTB = meine_variable >> 8;  // obere 8 Bit

> Des weiteren möchte ich an der 16-Bit-Variable die Bits nach
>links bzw. rechts verschieben.

Siehe oben.

MFG
Falk

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank. Hast mir sehr geholfen!

>Das hat nix mit Arroganz zu tun, eher was mit Pädagogik.

Im Prinzip hat Falk ja recht, hätte intensiver im C-Tut. nachsehen 
können. Konnte mir aber keinen Reim aus den Bitmanipulationen machen. 
Jetzt ist mir das einigermaßen klar. Die letzte Möglichkeit wäre Trial 
and Error gewesen. (learning by burning :-) )

MfG

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.