INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
17.01.2015, 20:12 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2015 07:43 von derdemo.)
Beitrag #1
seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
hallo,
ich habe hier eine seltsame 6-analog-pin-Steuerung für SPI-TFT LCD - kann mir jemand erklären, wieso das über analog läuft?

Kann man die eventuell auch auf richtige SPI-Pins (Mega 50-53) umstricken ?

hier ist die Beschaltung laut Sketch code (QDtech2_2_Demo_220x176_Serial ), die lib im Anhang:

Code:
// This demo was made for serial modules with a screen resolution
// of 220x176 pixels.
//
// This program requires the UTFT library.
//Firstly,you should install the UTFT library.
/********************************************************************************​***
//-----------------Instructions  for Hardware IO Connection------------------------|
//-----TFT Pin---|----Arduino Pin-----| -------------------Note--------------------|
//------LED------|---------A0---------|---Backlight Control,Hight level Enable-----|
//------CLK------|---------A1---------|-----Serial Interface Clock Signal----------|
//------SDI------|---------A2---------|-----------Serial Input Signal--------------|
//------RS-------|---------A3---------|------Command or Parameter Sellect----------|
//------RST------|---------A4---------|---------------Reset Signal-----------------|
//------CS-------|---------A5---------|----------Chip Sellect Signal---------------|
//VCC:5V DC.
//GND:Ground.
//How to save IO pin(see the notes below):
//note1:LED  is also can be connected to 3.3V or 5V,So that Backlight will be always on.
//note2:RST can be connected to MCU reset pin,to save a IO pin.
//note3:CS  can be connected to GND,So that Chip Sellect will be always Enable.





zip-File mit lib lässt sich hier nicht hochladen!
Könnt ihr bitte die zulässige File-Größe erhöhen ?
( Größe ist knapp 8 MB )
habe sie in unserem Forum hochgeladen, s. unter 2. Alternative:
http://www.mindstormsforum.de/viewtopic....090#p66090


Edit: Datei hinzugefügt

.zip  QDTech-UTFT-Karlsen.zip (Größe: 5,58 MB / Downloads: 39)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.01.2015, 22:36 (Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2015 22:41 von HaWe.)
Beitrag #2
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
Zwischenstand:
hab sie jetzt wenigstens zum Laufen gekriegt.

Test:
genau so langsam wie die lib
https://github.com/Nkawu/TFT_22_ILI9225
auf dem Mega,
aber 2-3x schneller als die andere lib auf dem Due! (insg. ca. 5-6 schneller als beide libs auf dem Mega)

http://www.mindstormsforum.de/viewtopic....090#p66090



(17.01.2015 20:12)HaWe schrieb:  hallo,
ich habe hier eine seltsame 6-analog-pin-Steuerung für SPI-TFT LCD - kann mir jemand erklären, wieso das über analog läuft?

Kann man die eventuell auch auf richtige SPI-Pins (Mega 50-53) umstricken ?

hier ist die Beschaltung laut Sketch code (QDtech2_2_Demo_220x176_Serial ), die lib im Anhang:

Code:
// This demo was made for serial modules with a screen resolution
// of 220x176 pixels.
//
// This program requires the UTFT library.
//Firstly,you should install the UTFT library.
/********************************************************************************​***
//-----------------Instructions  for Hardware IO Connection------------------------|
//-----TFT Pin---|----Arduino Pin-----| -------------------Note--------------------|
//------LED------|---------A0---------|---Backlight Control,Hight level Enable-----|
//------CLK------|---------A1---------|-----Serial Interface Clock Signal----------|
//------SDI------|---------A2---------|-----------Serial Input Signal--------------|
//------RS-------|---------A3---------|------Command or Parameter Sellect----------|
//------RST------|---------A4---------|---------------Reset Signal-----------------|
//------CS-------|---------A5---------|----------Chip Sellect Signal---------------|
//VCC:5V DC.
//GND:Ground.
//How to save IO pin(see the notes below):
//note1:LED  is also can be connected to 3.3V or 5V,So that Backlight will be always on.
//note2:RST can be connected to MCU reset pin,to save a IO pin.
//note3:CS  can be connected to GND,So that Chip Sellect will be always Enable.





zip-File mit lib lässt sich hier nicht hochladen!
Könnt ihr bitte die zulässige File-Größe erhöhen ?
( Größe ist knapp 8 MB )
habe sie in unserem Forum hochgeladen, s. unter 2. Alternative:
http://www.mindstormsforum.de/viewtopic....090#p66090



versteht jemand, warum hier analoge Pins zur Steuerung verwendet werden und keine normalen digitalen oder sogar SPI ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2015, 07:38 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2015 07:39 von derdemo.)
Beitrag #3
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
Zitat:zip-File mit lib lässt sich hier nicht hochladen!
Könnt ihr bitte die zulässige File-Größe erhöhen ?
( Größe ist knapp 8 MB )

Danke für den Hinweis, wurde soeben auf 16 MB erweitert Wink

Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2015, 20:12 (Dieser Beitrag wurde zuletzt bearbeitet: 22.01.2015 20:18 von HaWe.)
Beitrag #4
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
so -jetzt also die lib mit analog-Ansteuerung mit den Fragen:
1.) es ist doch SPI - warum dann analog-Pins?
2.) kann man es nicht besser auf Hardware-SPI umstricken ?
3.) welche DPin-Nummern haben überhaupt die Due-SPI-2-Header-Pins ?

Code:
// This demo was made for serial modules with a screen resolution of 220x176 pixels.

/********************************************************************************​***
//-----------------Instructions  for Hardware IO Connection------------------------|
//-----TFT Pin---|----Arduino Pin-----| -------------------Note--------------------|
//------LED------|---------A0---------|---Backlight Control,Hight level Enable-----|
//------CLK------|---------A1---------|-----Serial Interface Clock Signal----------|
//------SDI------|---------A2---------|-----------Serial Input Signal--------------|
//------RS-------|---------A3---------|------Command or Parameter Sellect----------|
//------RST------|---------A4---------|---------------Reset Signal-----------------|
//------CS-------|---------A5---------|----------Chip Sellect Signal---------------|
//VCC:5V DC.
//GND:Ground.
//How to save IO pin(see the notes below):
//note1:LED  is also can be connected to 3.3V or 5V,So that Backlight will be always on.
//note2:RST can be connected to MCU reset pin,to save a IO pin.
//note3:CS  can be connected to GND,So that Chip Sellect will be always Enable.

kompletter Beispiel-Code:
Code:
// UTFT_Demo_220x176_Serial (C)2013 Henning Karlsen
// This program is a demo of how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for serial modules with a screen resolution
// of 220x176 pixels.
//
// This program requires the UTFT library.
//Firstly,you should install the UTFT library.
/********************************************************************************​***
//-----------------Instructions  for Hardware IO Connection------------------------|
//-----TFT Pin---|----Arduino Pin-----| -------------------Note--------------------|
//------LED------|---------A0---------|---Backlight Control,Hight level Enable-----|
//------CLK------|---------A1---------|-----Serial Interface Clock Signal----------|
//------SDI------|---------A2---------|-----------Serial Input Signal--------------|
//------RS-------|---------A3---------|------Command or Parameter Sellect----------|
//------RST------|---------A4---------|---------------Reset Signal-----------------|
//------CS-------|---------A5---------|----------Chip Sellect Signal---------------|
//VCC:5V DC.
//GND:Ground.
//How to save IO pin(see the notes below):
//note1:LED  is also can be connected to 3.3V or 5V,So that Backlight will be always on.
//note2:RST can be connected to MCU reset pin,to save a IO pin.
//note3:CS  can be connected to GND,So that Chip Sellect will be always Enable.
********************************************************************************​****/
#include <UTFT.h>

// Declare which fonts we will be using
extern uint8_t SmallFont[];
//UTFT myGLCD(Model,SDA,SCL,CS,RST,RS)
//QD220A is for QDtech 2.2inch SPI LCD Module,Driver IC:ILI9225
UTFT myGLCD(QD220A,A2,A1,A5,A4,A3);   // Remember to change the model parameter to suit your display module!

void setup()
{
  randomSeed(analogRead(0));

// Setup the LCD
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
}

void loop()
{
  int buf[218];
  int x, x2;
  int y, y2;
  int r;

// Clear the screen and draw the frame
  myGLCD.clrScr();

  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRect(0, 0, 219, 13);
  myGLCD.setColor(64, 64, 64);
  myGLCD.fillRect(0, 162, 219, 175);
  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("** Universal TFT Library **", CENTER, 1);
  myGLCD.setBackColor(64, 64, 64);
  myGLCD.setColor(255,255,0);
  myGLCD.print("> elec.henningkarlsen.com <", CENTER, 163);

  myGLCD.setColor(0, 0, 255);
  myGLCD.drawRect(0, 14, 219, 161);

// Draw crosshairs
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(109, 15, 109, 160);
  myGLCD.drawLine(1, 88, 218, 88);

  for (int i=9; i<210; i+=10)
    myGLCD.drawLine(i, 86, i, 90);
  for (int i=19; i<155; i+=10)
    myGLCD.drawLine(107, i, 111, i);

// Draw sin-, cos- and tan-lines
  myGLCD.setColor(0,255,255);
  myGLCD.print("Sin", 5, 15);
  for (int i=1; i<218; i++)
  {
    myGLCD.drawPixel(i,88+(sin(((i*1.65)*3.14)/180)*70));
  }

  myGLCD.setColor(255,0,0);
  myGLCD.print("Cos", 5, 27);
  for (int i=1; i<218; i++)
  {
    myGLCD.drawPixel(i,88+(cos(((i*1.65)*3.14)/180)*70));
  }

  myGLCD.setColor(255,255,0);
  myGLCD.print("Tan", 5, 39);
  for (int i=1; i<218; i++)
  {
    myGLCD.drawPixel(i,88+(tan(((i*1.65)*3.14)/180)));
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);
  myGLCD.setColor(0, 0, 255);
  myGLCD.setBackColor(0, 0, 0);
  myGLCD.drawLine(109, 15, 109, 160);
  myGLCD.drawLine(1, 88, 218, 88);

// Draw a moving sinewave
  x=1;
  for (int i=1; i<(218*20); i++)
  {
    x++;
    if (x==219)
      x=1;
    if (i>219)
    {
      if ((x==109)||(buf[x-1]==88))
        myGLCD.setColor(0,0,255);
      else
        myGLCD.setColor(0,0,0);
      myGLCD.drawPixel(x,buf[x-1]);
    }
    myGLCD.setColor(0,255,255);
    y=88+(sin(((i*1.6)*3.14)/180)*(65-(i / 100)));
    myGLCD.drawPixel(x,y);
    buf[x-1]=y;
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some filled rectangles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillRect(44+(i*15), 23+(i*15), 88+(i*15), 63+(i*15));
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some filled, rounded rectangles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillRoundRect(132-(i*15), 23+(i*15), 172-(i*15), 63+(i*15));
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some filled circles
  for (int i=1; i<6; i++)
  {
    switch (i)
    {
      case 1:
        myGLCD.setColor(255,0,255);
        break;
      case 2:
        myGLCD.setColor(255,0,0);
        break;
      case 3:
        myGLCD.setColor(0,255,0);
        break;
      case 4:
        myGLCD.setColor(0,0,255);
        break;
      case 5:
        myGLCD.setColor(255,255,0);
        break;
    }
    myGLCD.fillCircle(64+(i*15),43+(i*15), 20);
  }

  delay(2000);
  
  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some lines in a pattern
  myGLCD.setColor (255,0,0);
  for (int i=15; i<160; i+=5)
  {
    myGLCD.drawLine(1, i, (i*1.44)-10, 160);
  }
  myGLCD.setColor (255,0,0);
  for (int i=160; i>15; i-=5)
  {
    myGLCD.drawLine(218, i, (i*1.44)-12, 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=160; i>15; i-=5)
  {
    myGLCD.drawLine(1, i, 232-(i*1.44), 15);
  }
  myGLCD.setColor (0,255,255);
  for (int i=15; i<160; i+=5)
  {
    myGLCD.drawLine(218, i, 231-(i*1.44), 160);
  }

  delay(2000);

    myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,161);

// Draw some random circles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=22+random(176);
    y=35+random(105);
    r=random(20);
    myGLCD.drawCircle(x, y, r);
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some random rectangles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(216);
    y=16+random(143);
    x2=2+random(216);
    y2=16+random(143);
    myGLCD.drawRect(x, y, x2, y2);
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

// Draw some random rounded rectangles
  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(216);
    y=16+random(143);
    x2=2+random(216);
    y2=16+random(143);
    myGLCD.drawRoundRect(x, y, x2, y2);
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

  for (int i=0; i<100; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    x=2+random(216);
    y=16+random(143);
    x2=2+random(216);
    y2=16+random(143);
    myGLCD.drawLine(x, y, x2, y2);
  }

  delay(2000);

  myGLCD.setColor(0,0,0);
  myGLCD.fillRect(1,15,218,160);

  for (int i=0; i<10000; i++)
  {
    myGLCD.setColor(random(255), random(255), random(255));
    myGLCD.drawPixel(2+random(216), 16+random(143));
  }

  delay(2000);

  myGLCD.fillScr(0, 0, 255);
  myGLCD.setColor(255, 0, 0);
  myGLCD.fillRoundRect(40, 57, 179, 119);

  myGLCD.setColor(255, 255, 255);
  myGLCD.setBackColor(255, 0, 0);
  myGLCD.print("That's it!", CENTER, 62);
  myGLCD.print("Restarting in a", CENTER, 88);
  myGLCD.print("few seconds...", CENTER, 101);

  myGLCD.setColor(0, 255, 0);
  myGLCD.setBackColor(0, 0, 255);
  myGLCD.print("Runtime: (msecs)", CENTER, 146);
  myGLCD.printNumI(millis(), CENTER, 161);

  delay (10000);
}

ps:
weitere Infos zur Hardware und den zugehörigen Treibern und Beispiel-Codes:
http://www.mindstormsforum.de/viewtopic....491#p66090


Angehängte Datei(en)
.zip  QDTech-UTFT-Karlsen.zip (Größe: 5,58 MB / Downloads: 182)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.01.2015, 19:39 (Dieser Beitrag wurde zuletzt bearbeitet: 24.01.2015 13:02 von HaWe.)
Beitrag #5
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
update: es geht jetzt sowohl mit analogen als auch digitalen Pins inkl. SPI-1-Header.
http://www.mindstormsforum.de/viewtopic....090#p66090

letzte Frage nochmal:

welche DPin-Nummern haben die Due-SPI-2-Header-Pins ?
MISO2= ?
MOSI2= ?
SCK2 = ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.01.2015, 13:02
Beitrag #6
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
geht das nicht?

(23.01.2015 19:39)HaWe schrieb:   welche DPin-Nummern haben die Due-SPI-2-Header-Pins ?
MISO2= ?
MOSI2= ?
SCK2 = ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.01.2015, 11:56
Beitrag #7
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
noch eine Anschlussfrage:

die Karlsen-lib lässt ja eine ziemlich individuelle Pin-Konfiguration zu (beliebige analoge oder digitale Pins).
Es macht den Anschein für mich, als benutzte sie Software-SPI (?).

Code:
//-----TFT Pin---|----Arduino Pin-----| -------------------Note--------------------|-DPIN/SPI--
//------LED------|---------A0--Vc-----|---Backlight Control,Hight level Enable-----|---Vc------
//------CLK------|---------A1---------|-----Serial Interface Clock Signal----------|---38(76)--
//------SDI------|---------A2---------|-----------Serial Input Signal--------------|---39(75)--
//------RS-------|---------A3---------|------Command or Parameter Sellect----------|---40------
//------RST------|---------A4/RESET---|---------------Reset Signal-----------------|---RESET---
//------CS-------|---------A5/GND-----|----------Chip Sellect Signal---------------|---41/GND--
http://www.arduinoforum.de/attachment.php?aid=820

Frage:
wenn man es auch die SPI-Pins 50-53(Mega) bzw. 74-76(Due) legt:
wird es dann automatisch zu Hardware -SPI?

und nochmal die vorherige Frage:
(23.01.2015 19:39)HaWe schrieb:   welche DPin-Nummern haben die Due-SPI-2-Header-Pins ?
MISO2= ?
MOSI2= ?
SCK2 = ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.01.2015, 14:39
Beitrag #8
RE: seltsame analog-pin-Steuerung für SPI-TFT LCD auf SPI umschreiben?
Zitat:ich habe hier eine seltsame 6-analog-pin-Steuerung für SPI-TFT LCD - kann mir jemand erklären, wieso das über analog läuft?
Weil man analoge Pins durchaus auch als digitale Pins nutzen kann. Sowas wie
Code:
pinMode(A2, OUTPUT);
ist kein Problem.
Wenn man in die .cpp der NKawu - Lib guckt sieht man sehr schön wie die unterschiedlichen Verfahren für echtes (Hardware) SPI und "Software" SPI (analoge Pins) geregelt werden.
Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bluetooth-Steuerung mit elegoo uno funktioniert nicht Matthias_Arduino 0 156 01.11.2016 19:47
Letzter Beitrag: Matthias_Arduino
  Steuerung eines Schrittmotor und eines Lüfters auf einem Shield phischmi 7 284 18.08.2016 20:58
Letzter Beitrag: phischmi
  Garagentor,- und Beleuchtungs - Steuerung ardu1n1x 2 453 13.07.2016 16:17
Letzter Beitrag: ardu1n1x
  Android App für RGB Steuerung heino_m 5 398 08.05.2016 10:20
Letzter Beitrag: hotsystems
  Motorshield analoge Steuerung -cosmo- 8 1.244 11.02.2016 22:07
Letzter Beitrag: -cosmo-
  Steuerung Motor 12V 20A Maxi290997 2 1.034 13.09.2015 00:13
Letzter Beitrag: Maxi290997
  Shild-Wahl für Servo-Steuerung SkyFox 9 1.121 23.07.2015 12:49
Letzter Beitrag: SkyFox
  wer hat Erfahrung mit analog-Joysticks für Platinen? HaWe 0 654 11.07.2015 22:03
Letzter Beitrag: HaWe
  I2C analog ADC Multiplexer wie PCF8591 aber 8x - welchen? HaWe 0 629 23.06.2015 15:33
Letzter Beitrag: HaWe
  Keys KY-013 Analog Temperature Sensor Pit 0 740 21.03.2015 20:17
Letzter Beitrag: Pit

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste