TX / RX Port an Atmega 2560 lässt sich nicht aus/bzw anschalten

OP #2799555
Lesenswert?
• ▲
▼
Hallo,

weiss jemand wie die Ports auf Ein- bzw Ausgänge am Arduino 2560 Board 
definiert werden? Habe hier ein sehr komisches verhalten.

Folgender Code funktioniert nicht:

/*
 * PinTest.c
 */


#include <avr/io.h>

int main(void)
{
  DDRE =0xFF;
  PORTE = 0x00;

    while(1)
    {
    }
}

Der TX0 Pin zeigt mir immer einen Spannungspegel und ich weiss nicht 
warum.
Führe ich folgenden Code in der Arduino Umgebung aus, so geht es 
einwandfrei:

int txPin = 1;
int rxPin = 0;

void setup()
{
      pinMode(txPin, OUTPUT);      // Set Port as Output Port
      digitalWrite(txPin, LOW);   // Set TX Pin Low
}

void loop()
{

  for (;;) {
  }
}


Auf dem Board befinden sich 2 Mikrocontroller laut Schaltplan, wobei 
einer so programmiert ist dass er sich dem PC gegenüber als STK500 Board 
ausgibt und somit ein Programmiergerät simuliert.

Der Atmega 16 ist mit Widerständen an dem TX0 und RX0 Pin des Atmega2560 
angeschlossen und ich vermute dass evtl von diesem auch die Spannung 
kommt...

Ich habe auch bereits geschaut ob der objdump der Arduino Umgebung mir 
irgendwie weiterhelfen könnte aber leider ist dass ein Dschungel von 
Makros und Funktionsaufrufen um einen einfachen Port zu definieren und 
irgendwie komme ich da leider nicht weiter.

Hat vielleicht jemand von euch dieses Board und kann mir sagen ob ich 
irgendwie zusätzlich noch was beachten muss um den Port einfach auf 
Ausgang zu schalten und auf Low Pegel zu ziehen?
Gast #2799569
Lesenswert?
• ▲
▼
Wenn der UART an ist, dann wird die normale Funktion der Portpins 
überfahren, da kannst Du soviel wie Du willst auf die Pins schreiben.

Um die Pins normal nutzen zu können, muss das UART aus sein. Das geht 
über UCSRBn und dort die TXENn und RXENn Bits löschen, n ist in Deinem 
Fall 0.
Gast #2799579
Lesenswert?
• ▲
▼
Wolfgang M. schrieb:
> Ist der UART per Default denn aus oder an?
> Ich wüsste nämlich nicht dass ich den angestellt hätte.

Das kann ich Dir nicht sagen, da ich kein Arduinisch programmiere. 
Kann's zwar lesen, aber solche Details ob das per Default an ist, musst 
Du selbst in der Doku nachsehen.

Zumindest für den Bootlader muss das UART an sein, ob der dann das UART 
wieder ausschaltet, ist 'ne andere Sache. Aber ich kann mir vorstellen, 
dass das UART einfach angelassen wird.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.