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
zur 1. Frage: Schau dir mal die Schiebeoperatoren "<<" bzw. ">>" an. zur 2. Frage: Ja! Bspw.: DDRB = 0x0f;
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.