Arduino Uno / Atmega 2560 - Uno Sketch geht auf Atmega 2560 nicht

Hallo,

ich habe eine Programm, daß leider nicht mehr in den Uno passt.
So habe ich mir einen Atmega 2560 gekauft und wollte damit weitermachen.

Mit dem Sketch steuere ich auch ein TFT DisplayST7735 an.
Dies funktioniert mit dem At2560 nicht mehr.

Ich benutze die Bibliothek Adafruit_ST7735.h.

#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

Das läuft auf dem UNO, aber nicht auf dem Atmega.

Nach langem Suchen habe ich folgende Lösung gefunden:

#define TFT_CS 10
#define TFT_RST 8
#define TFT_DC 9
#define TFT_SCLK 13
#define TFT_MOSI 11

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);

Diese Lösung geht auf UNO und Atmega.
Leider ist hier aber der Textaufbau viel langsamer, und auch sichtbar.

Wieso geht die erste Version nicht auf dem Atmega ?
Ein Umpinnen von SCLK auf 52 und MOSI auf 51 des Atmega half da auch nicht.

Kann mir da jemand weiterhelfen ?

Test_Schrift_V7.zip (1.05 KB)

Sieh dir doch einfach mal die jeweiligen Pinouts der beiden Boards an. Da siehst du doch Unterschiede der SPI-Belegung.

Ein Umpinnen von SCLK auf 52 und MOSI auf 51 des Atmega half da auch nicht.

Das wird gerne vergessen:
Es ist notwendig den HardwareSPI SS Pin des Mega auf High zu ziehen, oder als Ausgang zu definieren.
Sonst kann die Hardware SPI unerwünschter Weise in den Slave Mode fallen.

pinMode(SS,OUTPUT); // pin 10 beim UNO, pin 53 beim Mega

Danke für die Hinweise.

Es geht jetzt ...