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?
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.
Ist der UART per Default denn aus oder an? Ich wüsste nämlich nicht dass ich den angestellt hätte. Könnte sein dass der Bootloader irgendwas komisches macht im Chip der per Default drauf ist aber der Code oben ist genau dass was ich programmiert habe mehr nicht.
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.
Ich teste jetzt einfach mal aus was passiert wenn ich den UART deaktiviere...
Oder lies die Bits aus und guck ob die Uart an is...
Genau das wars. Danke, da hätt ich ja noch ewig gesucht...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.