Forum: Compiler & IDEs 8bit in 4bit geht das?


von JonnyB (Gast)


Lesenswert?

Hi,

würde gern es hinbekommen das ich kein 8 Bit datenbus habe sonder nur
einen 4 bit.

Also mein PORTD ist als eingang geschaltet und es liegt nur an PIND7
bis PIND4 daten an.

DIe restlichen werden für schalter benutzt.

Kann man jetzt nur die 4 Datenbit betrachten, also so ungefähr:

unsigned char temp;

temp= PIND   // mit hilfe eines befehls nur die letzten 4 BIT
übertragen etc !?

if (temp=='7'){mach irgendwas}
--------------------------------------

noch ne Frage, kann man ein Port wie zb PORTB, zur hälfte als EINGANG
und zu andere hälfte aus AUSGANG definieren ?

DANKE für eure Mühe

MfG Jonny

von Alex (Gast)


Lesenswert?

zur 1. Frage:

Schau dir mal die Schiebeoperatoren "<<" bzw. ">>" an.

zur 2. Frage:

Ja!
Bspw.: DDRB = 0x0f;

von Florian Pfanner (Gast)


Lesenswert?

Hallo JonnyB,

schau dir auch mal die Maskierungs-Operationen in C an. Um z.B. nur die
Oberen 8 Bit von PORTB in Temp zu speichern kann man schreiben:
temp=PORTB&0xF0; Also PORTB wird mit 0xF0 und-Verknüpft und das
Ergebnis  wird in temp gespeichert. So ist eine Auswertung dieser Bits
ohne den Anderen Bits möglich.

Gruß, Florian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.