Erste Frage zu C++

Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: Erste Frage zu C++

 · 
Posted: 22.04.2024 - 20:08  ·  #89
Ich gebs auf ..... Ja ich werde besser mit meinen fast 67 Jahren.

;)
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 756
Registered: 06 / 2013
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 07:39  ·  #90
Harry alles nur Spaß
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 08:15  ·  #91
Hi Frank, das beobachte ich in vielen Foren und wird immer schlimmer, je weiter man nach Norden kommt 😁
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 756
Registered: 06 / 2013
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 14:36  ·  #92
Ich habe jetzt das ILI9341 Display an Software SPI angeschossen, das ist aber eine langsame Sache
ist ja so wie beim AVRco Soft SPI oder Hard SPI.
Hardware SPI ist immer schneller als Soft SPI

Ich bin schon seit 2 Tage dran raus zu finden welchen Hardware SPI dieses Demo verwendet
das muss doch in dem Code drin stehen.

So läuft es bei mir
Code

#define TFT_CS 54
#define TFT_DC 55

#define TFT_MOSI 56
#define TFT_CLK  57
#define TFT_RST  58  
#define TFT_MISO 59

//Software SPI
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);

//Hardware SPI
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);  


bei Hardware SPI muss ich nur angeben CS und DC
der HW SPI Port wird bestimmt im Code Beispiele/Adafruid ILI9341/graphictest.uno
festgelegt.

Gruß Frank
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2093
Registered: 03 / 2003
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 15:14  ·  #93
Ich denke die Zahlen hinter den Anschlüssen sind die Pinnummern?
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 59
Posts: 957
Registered: 09 / 2007
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 15:35  ·  #94
Hi Frank,
was ist jetzt die Frage ?


Code

#define TFT_CS 54
#define TFT_DC 55 

// Aduinos 1. SPI Port am SAM51P20
#define TFT_MISO 50 
#define TFT_MOSI 51
#define TFT_CLK  52


Da hängt dein TFT jetzt mit HW SPI. Das SW SPI nichts taugt, dürfte jedem klar sein und bei 7 SPI Ports auch unnötig.
Den SPI Speed kannst du ja anpassen mit MAX_SPI in der platformio.ini .

Gruß
miparo
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 756
Registered: 06 / 2013
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 16:38  ·  #95
ok dann muss ich das besser erlären.
Diese Pins sind freie Pins und haben mit SPI nichts zu tun, keiner der Pins hängt an einen der
7 SPI Ports.
#define TFT_CS 54 #define TFT_DC 55 #define TFT_MOSI 56#define TFT_CLK 57
#define TFT_RST 58 #define TFT_MISO 59
Also habe ich reines SW SPI. und das tut es auch.

Ich möchte aber das Display an einer richtigen HW SPI dran hängen mit MOSI MISI SCK usw.
dafür hat der SamD 7 HW SPI. Und wenn ich mir das in der variant.h anschaue.
Sind 2 Stück HW-SPI Deklariert

Code

/*
 * SPI Interfaces
 */
#define SPI_INTERFACES_COUNT 2

#define PIN_SPI_MISO        (64)  //64
#define PIN_SPI_MOSI        (66)  //66
#define PIN_SPI_SCK         (65)  //65
#define PERIPH_SPI          sercom7
#define PAD_SPI_TX          SPI_PAD_0_SCK_1
#define PAD_SPI_RX          SERCOM_RX_PAD_3

static const uint8_t SS    = (53);
static const uint8_t MOSI = PIN_SPI_MOSI;
static const uint8_t MISO = PIN_SPI_MISO;
static const uint8_t SCK  = PIN_SPI_SCK;

#define PIN_SPI1_MISO       (80)  //80
#define PIN_SPI1_MOSI       (82)  //82
#define PIN_SPI1_SCK        (81)  //81
#define PIN_SPI1_SS         (83)  //83
#define PERIPH_SPI1         sercom2
#define PAD_SPI1_TX         SPI_PAD_0_SCK_1
#define PAD_SPI1_RX         SERCOM_RX_PAD_3

static const uint8_t SS1   = PIN_SPI1_SS;
static const uint8_t MOSI1 = PIN_SPI1_MOSI;
static const uint8_t MISO1 = PIN_SPI1_MISO;
static const uint8_t SCK1  = PIN_SPI1_SCK;


Der erste mit Pin 64 / 65 / 66 finde ich nicht auf der Platine.
Der zweite ist für die SD Card.

Und jetzt habe ich den ersten SPI Port der 64 65 66 so umgeschreiben wie miparo das gerade geschieben hat.
mit 50 51 52 und habe auch den Init String in
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

Aber es tut sich nichts. Meine überlegung ist ob dieses Demo den 80 81 82 nimmt ?
Also den für SD Card.

Gruß Frank
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 756
Registered: 06 / 2013
Subject:

Re: Erste Frage zu C++

 · 
Posted: 23.04.2024 - 18:29  ·  #96
Ich habe mal was gemacht, ich denke das ist der aktuelle SPI Port

Code

void sendeSPI()
{
  Serial.println();
  Serial.print(" MISO = ");
  Serial.print(MISO);
  Serial.print(" MOSI = ");
  Serial.print(MOSI);
  Serial.print(" SCK = ");
  Serial.print(SCK);
  Serial.print(" CS = ");
  Serial.print(SS);
}

MISO = 50 MOSI = 51 SCK = 52 CS = 53

Tja und hängt das Display jetzt dran, bekomme aber nur weißen Hintergrund.

Gruß Frank
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   137   151 · Page-Gen-Time: 0.030856s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI