Pin Frage (8Bit Bus)

TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Pin Frage (8Bit Bus)

 · 
Gepostet: 07.07.2013 - 17:22 Uhr  ·  #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
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Pin Frage (8Bit Bus)

 · 
Gepostet: 07.07.2013 - 17:46 Uhr  ·  #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
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Pin Frage (8Bit Bus)

 · 
Gepostet: 08.07.2013 - 04:11 Uhr  ·  #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
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Pin Frage (8Bit Bus)

 · 
Gepostet: 08.07.2013 - 13:35 Uhr  ·  #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
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Pin Frage (8Bit Bus)

 · 
Gepostet: 09.07.2013 - 05:50 Uhr  ·  #5
Danke Gunter 👼
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Re: Pin Frage (8Bit Bus)

 · 
Gepostet: 09.07.2013 - 09:45 Uhr  ·  #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.
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 14 · Cache Hits: 14   102   116 · Page-Gen-Time: 0.022242s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI