2-Byte Variable an 2 Ports ausgeben

Gast #1661604
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.


1
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
#1661612
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
#1661624
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.
1
uint16_t meine_variable;
2

3
PORTA = meine_variable;    // untere 8 Bit
4
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
Gast #1661880
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

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