Forum: Compiler & IDEs Input / Output


von Alexander (Gast)


Lesenswert?

Hallo,

bin gerade beim Programmieren. Hierbei kam mir die Idee, einen Eingang
direkt in eine Variable zu kopieren und diese Variable wieder an einem
anderen Ausgang auszugeben. Weiß jemand wie dies Programmiertechnisch
aussieht?
Ich programmiere sonst immer PxOUT=0x..

Vielen Dank.

Gruß Alexander

von Joline (Gast)


Lesenswert?

Hi,

vielleicht könntest Du ja auch noch mitteilen, in welcher Sprache Du
programmierst. Sieht nach BASIC aus, oder?

Also in C würde das so aussehen:

void fct(void)
{
 int variable;

 variable = ~PIND;  //wenn PORTD als Eingang def. ist
 PORTB = variable;  //wenn PORTB als Ausgang def. ist
}

von Sebastian (Gast)


Lesenswert?

Sieht mir nach einem MSP430 mit C aus. Ein bisschen mehr Input wäre aber
hilfreich ...

Und das Problem verstehe ich nicht ganz. Ist doch simpel, oder?!

P1DIR=0xFF;              // auf input setzen
MyVar=(P1IN & BITMASK);  // einlesen
P1DIR=0x00;              // auf output setzen
(P1OUT & BITMASK)=MyVar; // ausgeben

von Florian - der Flo - Scharf (Gast)


Lesenswert?

naja, warum so kompliziert ;)

unsigned char blah = 0;

blah = P1IN;
P2OUT = blah;


der flo ;)

von Sebastian (Gast)


Lesenswert?

Wenn duunmaskiert alle 8 Bits von Port 1 an Port 2 durchgibst, solltest
du aber genau wissen, was da dran hängt ...

von alexander (Gast)


Lesenswert?

Danke für eure Hilfe!

Gruß Alexander

von timi (Gast)


Lesenswert?

Hi,

bin Neuling und habe eine Frage zu Input/Output:

Output ist doch einfach einen Port auf Low/High setzen und bei Input 
wird doch abgefrag ob ein Port auf Low/High liegt oder verstehe ich das 
falsch?

dh. wenn ich einen Taster abfragen möchte, brauche ich doch nur einen 
Port auf Input zu setzten und den Wert an diesem Port abfragen. Wenn 
Taster ungedrückt ist, sollte doch an dem Port eine 1 anliegen 
(Pulldown) und bei gedrückter Taster 0. Ich bekomme aber 
gedrückt/ungedrückt immer 1 :-(

von Johannes M. (johnny-m)


Lesenswert?

Erstens ist es unsinnig (und hier nicht gern gesehen), einen drei Jahre 
alten Thread wieder rauszukramen. Zweitens: Wenn Du mit AVRs arbeitest, 
dann hat jeder Port drei Register, und zwar:
1.: ein Datenrichtungsregister (DDRx), das (wie der Name schon vermuten 
lässt) die Datenrichtung definiert
2.: ein Portregister (PORTx), das den Zustand des Ausgangstreibers 
bestimmt
3.: ein Pinregister (PINx), das den aktuellen Zustand der Pins enthält 
(und bei einigen neueren AVRs auch zum Umschalten der Ausgangstreiber 
genutzt werden kann).

Wenn das DDRx einen Pin als Ausgang definiert, dann setzt man über PORTx 
den Pin auf Low oder High. Ist der Pin als Eingang konfiguriert, dann 
definiert PORTx, ob der interne Pull-Up-Widerstand aktiviert ist oder 
nicht und über PINx liest man den aktuellen Zustand ein.

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.