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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren