PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfache Frage zu Zuweisungen



Baui
06.07.2007, 20:05
Hallo,
ich beschäftige mich seit ca. einer Woche mit C. Möchte auf die Dauer von Basic auf C umsteigen. Aber alles braucht nun mal Übung....

Jetzt ist meine einfache Frage, wie ich einem Ausgang (Bit) eines Ports den Wert eines Eingangs zuweisen kann. In Bascom gehtdas ja wie folgt:



Portb.0=Pina.7


Ich habe es wie folgt gemacht, das erscheint mir allerdings ein wenig aufwendig:


a= 0x80 & PINB;
a=(a>>PB7);

if(a!=(PORTB & 1)){
PORTB &= ~(1);
PORTB |= a;
}


Vielleicht kann mir ja mal jemand kurz auf die Sprünge helfen. Die If Abfrage hab ich drin, damit wenn der Port schon 1 ist, er nicht während des Ablaufs resettet wird.

Gruß
Baui

MartinFunk
06.07.2007, 20:15
Hi,
also das funktioniert so:

Bit setzen.

PORTX |= (1<<a); // a ist die nummer des bit
oder mehrere gleichzeitg
PORTX |= (1<<a) | (1<<b) | (1<<c) ;

Bit löschen.

PORTX &= ~(1<<y);
oder mehrere gleichzeitg
PORTX &= ~((1<<a) | (1<<b) | (1<<c));

MfG Martin

Baui
06.07.2007, 20:18
hallo martin,
ja das habe ich ja bereits so gemacht.

Also gibt es keine direkte Möglichkeit ein Bit eines Ports einem anderen Portbit direkt zuzuweisen, ohne dieses vorher zu löschen und dann wieder zu setzen?

Gruß
Baui

MartinFunk
06.07.2007, 20:21
Ich kenn keine!

Martin