www.mikrocontroller.net

Forum: Compiler & IDEs Input / Output


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
}

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian - der Flo - Scharf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja, warum so kompliziert ;)

unsigned char blah = 0;

blah = P1IN;
P2OUT = blah;


der flo ;)

Autor: Sebastian (Gast)
Datum:

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

Autor: alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Hilfe!

Gruß Alexander

Autor: timi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-(

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.