ganz doofe Frage zum Thema Variablenwert auf PORT ausgeben?

Gast #3292420
Lesenswert?

Hey,
ok vielleicht ist es auch nur mal Zeit für eine Pause aber ich habe 
folgendes Problem!

habe auf nem AVR-Controller
eine Variable
uint16_t test

dann möchte ich bit 0 bis 5 an PORTC und
bit 6 bis 11 an PORTD ausgeben.....

die restlichen Bits sind erstmal egal.

irgendwie XOR und NOR ich mir einen zurecht!

PORTD = (test) << PD0 | (test>>1) << PD1 ......... etc.

klappt nicht... hmmh?
#3292448
Lesenswert?

Rumfreund schrieb:
> Hey,
> ok vielleicht ist es auch nur mal Zeit für eine Pause aber ich habe
> folgendes Problem!
>
> habe auf nem AVR-Controller
> eine Variable
> uint16_t test
>
> dann möchte ich bit 0 bis 5 an PORTC und
> bit 6 bis 11 an PORTD ausgeben.....
>
> die restlichen Bits sind erstmal egal.
>
> irgendwie XOR und NOR ich mir einen zurecht!
>
> PORTD = (test) << PD0 | (test>>1) << PD1 ......... etc.
>
> klappt nicht... hmmh?
den Kot versteht ja auch kein Schwein. Schon gar nicht der Compiler.

1
PORTC = (uint_8)(test & 0x3F);
2
PORTD = (uint_8)((test >> 6) & 0x3F);

Freu dich nicht zu früh.
Du erklärst jetzt, für jeden verständlich, warum das so funktioniert. 
Das sind die absoluten Basics. Das musst du im Schlaf beherrschen.

mfg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren