www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IO-Pins während des Programmablaufs änderbar ?


Autor: Hans Jelt (step_up_mosfet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hy (Ich bin Anfänger)

Es würde mich interessieren ob man die I/O-Ports vom ATmega wärend des
Betriebs anders definieren kann.
.. also wenn ich die 8 Pins vom Port D als  Eingänge brauch,
 wenn ich einen Pin (z.B. PC1 vom Port C) auf GND lege
und
wenn ich PC1 auf VDD lege sind es Ausgänge.

- > geht sowas ?

(Ich denke das geht, kann es aber nicht testen da ich bei meinen ersten
LED-Blink-Test bei meinem Test-Atmega8 den Reset-Pin als Ausgang
definiert habe und jetzt nicht mehr über SPI programmieren kann :-( )

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit was willst du programmieren? (welche sprache)
Erst mal ne antwort: es geht.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst die IO-Ports im Programm umschalten, tatsächlich musst du dies
sogar :) Kurz: Die Funktion der Ports wird ohnehin zu Laufzeit
eingestellt und nicht etwa durch den Programmer oder dergleichen.

Die Einstellung der Funktion der Ports ist nichts anderes als der
Zugriff auf spezielle Register des µC. Das kann prinzipiell überall im
Programmablauf gemacht werden. In deinem Fall muss also nur der Zustand
eines Einganges, z. B. in der Hauptschleife geprüft werden und abhängig
davon wird der Zustand der anderen Ports gesetzt.

Wichtig ist natürlich die externe Beschaltung bei solchen Spielereien,
da es sonst beim Umschalten der falschen Pins zu Kurzschlüssen kommen
kann... Das Verfahren des Umschaltens ist im Übrigen nicht total
unüblich, so kann man beispielsweise LEDs und Taster an den selben Pins
per Eingang und Ausgang betreiben.

Autor: Hans Jelt (step_up_mosfet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist wirklich cool,
das heißt dass man damit ne menge machen kann.

(Ich programmiere in AVR-Studio, benutze das USBisp von Matwei.de )
(meine testschaltung:
PortD als LED-Reihe (binärzähler)
PortC als Tastereingang
PortB als LED-Ausgang (Zustandsanzeige ob Taster an PortC gedrückt )
)

Aber jetzt noch ne Frage:
Bei meiner testschaltung und auch im AVR-Studio ist mir aufgefallen
dass  die Signale invertiert sind wenn ich sie in der Schleife
(for(;;)) setze, wenn ich sie im "Event-Handler" (der ausgelöst wirt
wenn der Zähler überläuft) setze sind sie richtig gesetzt.

Gibt es da eine Erklärung ?
oder
Soll ich das Programm mal Posten ?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibt es da eine Erklärung ?

Vermutlich.

> oder
> Soll ich das Programm mal Posten ?

Ja.

PS: Du plenkst!

Autor: Thomas O. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Könntest einen Port nur für Ausgangssignale nehmen und diesen per 573er
Latches vervielfachen und mit einem anderen das ganze als
Eingangsvervielfacher benutzen, dann müsstest du nicht zw. I und O
umschalten.

Habe damit eine Porterweiterung gebaut damit ich alle Adressleitungen
einen externen EEPROMs versorgen kann. Ich habe dann noch
10kOhm-Widerstandsnetzwerke als Pulldown an die Eingänge der Latches
gelegt. Kannst mal nach 28c64b oder 573 suchen dann findest du meine
Schaltung

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.