www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR_PORTA_IN/OUT


Autor: Name Name (mar75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte PORTA eines AVR als Eingang und als Ausgang verwenden. Dies 
wird durch ein if-Anweisung entschieden.

Leider funktioniert dies nicht immer.

if(...)
{
  PORTA = 0x00;
  DDRC  = 0x00;

  //Eingangsdaten holen
  IN_DATEN= PORTA;
...
}
else
{
  PORTA = 0x00;
  DDRC  = 0xFF;

  //Ausgangsdaten senden
  PORTA = OUT_DATEN;
...
}

weiss jemand, warum das Senden der OUT_DATEN nicht funktioniert

Vielen Dank

Gruß

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  IN_DATEN= PORTA;

Sollte eher

  IN_DATEN= PINA;

heissen!

Autor: Name Name (mar75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke das stimmt, war tippfehler.

Aber das Senden der Daten funktioniert trotzdem nicht!

Autor: ghu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum sprichst Du DDRC an?

Autor: Name Name (mar75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sollte DDRA heisen :-) Also PORTA als Ausgang definieren

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du mußt ddra ansprechen.

ddra = 0x00; port a = eingang
ddra = 0xff; port a = ausgang

je nachdem wie schnell dein uC läuft kann es sinnvoll sein noch ein paar 
nops zwischen dem zuweisen von ddra und porta zu setzen.
und nimm fürs einlesen von porta besser pina.

Autor: ghu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es sollte DDRA heisen :-) Also PORTA als Ausgang definieren

Und, weiß Dein Compiler das auch?

Autor: Name Name (mar75)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, die Übesetzung ging fehlerfrei... aber trotzdem bekomme ich immer 
0xFF am PORT-Ausgang.

Autor: ghu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann solltest Du mal Deinen ganzen Code zeigen. Mit PORTA = 0x00 kann 
kein 0xff mehr vom AVR kommen.

Externe Pullup? OUT_DATEN == 0xff?

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.