Pin Frage (8Bit Bus)

TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Pin Frage (8Bit Bus)

 · 
Posted: 07.07.2013 - 17:22  ·  #1
Moin,
Habe mal ne kleine Frage an euch.
Im Betrieb eines AtMegas 32 kann man doch nicht mehr einen ganzen Port auf
Eingang stellen und dann wieder auf Ausgang ... oder ?

Bin gerade am Überlegen ? Oder über 2 Proceduren PortIniAusgang / PortIniEingang


Weil ich brauche ein Bi-Directional Data bus



mfg TheBeginner
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Pin Frage (8Bit Bus)

 · 
Posted: 07.07.2013 - 17:46  ·  #2
Hi,

die Frage ist unklar gestellt!
Natürlich kann man jeden Port im laufenden Betrieb mal als IN und mal als OUT konfigurieren.
Zu beachten ist allersdings, dass keine Einstellungen verändert werden, die ein Treiber braucht.

Gunter
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Pin Frage (8Bit Bus)

 · 
Posted: 08.07.2013 - 04:11  ·  #3
Moin Gunter,
ich brauche keine Treiber dazu, ich will einfach einen ganzen Port mal als Ausgang und dann wieder
als Eingang schalten, mehr nicht.


mfg
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Pin Frage (8Bit Bus)

 · 
Posted: 08.07.2013 - 13:35  ·  #4
Hi,

für diesen Zweck braucht man natürlich keinen Treiber. Es wäre aber ungeschickt,
einen Port zu wählen, den man später zwingend für was anderes benutzen muss.
Wenn Du z.B. nicht planst den ADC zu benutzen bietet sich am Mega32 dafür PortA an.
An allen anderen Ports liegen oft anderweitig benötigte Funktionen
(SPI, ser.SS, JTAG, ...). Das sollte man bei der Planung schon bedenken.
Dann einfach

// Port A als Output definieren:
DDRA := $FF;
// Ausgabe machen:
PortA := ...
...
...
// Port A = als Input definieren:
DDRA := $00;
// Eingabe machen:
InputVar := PinA;

Gruß
Gunter
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 766
Registered: 06 / 2013
Subject:

Re: Pin Frage (8Bit Bus)

 · 
Posted: 09.07.2013 - 05:50  ·  #5
Danke Gunter 👼
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1408
Registered: 03 / 2005
Subject:

Re: Pin Frage (8Bit Bus)

 · 
Posted: 09.07.2013 - 09:45  ·  #6
Also useful is to define a port like this,

Code
var

IO_IN [@PINA] : byte;
IO_OUT [@PORTA] : byte;
IO_Dir [@DDRA] : byte;


then refer only to these new variables. If later you need to change the port used, there are just these 3 lines to change, not potentially hundreds.
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   102   116 · Page-Gen-Time: 0.052227s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI