8bit in 4bit geht das?

Gast #177720
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
Gast #177722
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

Antwort schreiben

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.

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.