Pages: [1]   Go Down
Author Topic: drawChar mit Adafruit GFX-Lib nutzen  (Read 669 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo zusammen,
es ist bestimt was ganz banales, aber als Programmiereinsteiger kome ich nicht auf die Lösung.
Es soll einfach ein Buchstabe auf einem Display wiedergegeben werden:

Code:
//#define sclk 13
//#define mosi 11
#define cs   10
#define dc   9
#define rst  8  // you can also connect this to the Arduino reset

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

void setup(void) {
  Serial.begin(9600);
  tft.initR(INITR_REDTAB);   // initialize a ST7735R chip, red tab
    Serial.println("init");
    tft.fillScreen(ST7735_BLACK);

// dieser Tesxt wird auf dem Display wiedergeben:
  tft.setCursor(0, 5);
  tft.setTextColor(ST7735_RED);
  tft.setTextWrap(true);
  tft.print("Dieser Text ist ok!");
 
// ein CHAR soll geschrieben werden; klappt nicht =(
  tft.drawChar(0, 20, "A", ST7735_RED, 0, 1);
}

void loop() {
}

void testdrawtext(char *text, uint16_t color) {
  tft.setCursor(0, 0);
  tft.setTextColor(color);
  tft.setTextWrap(true);
  tft.print(text);
}

void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size) {
}
Wer kann mir sagen, was ich hier falsch mache?

Gruß, Antiriad
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 249
Posts: 21199
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was sind die Fehlermeldungen bzw Fehlersymptome?
Grüße Uwe
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Naja Du definierst eine leere Funktion drawChar in Deinem Sketch, die Du dann aufrufst. Da die Funktion keinen Inhalt hat, passiert natürlich auch nichts.

Sollte es aber eine Fehlermeldung geben, das drawChar() doppelt definiert wurde, dann gibt es diese Funktion in der Lib schon (vermutlich dann auch mit Inhalt) und Du musst die leere Funktion aus Deinem Sketch raus nehmen.

Mario.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe jetzt mal die Funktion rausgenommen. Compiliert wird ohne Fehlermeldung. Ich habe den Code nochmal vereinfacht.
Eine Beschreibung zur dieser  drawChar-Funktion gibt es unter:
http://learn.adafruit.com/adafruit-gfx-graphics-library/graphics-primitives
(runter scrollen bis zur Beschreibung "Characters and text").

Bei dem Code-Beispiel bekomme ich nur ein blaues Display. Ich erwarte jedoch ein rotes "A" auf schwarzem Hintergrung auf blauem Display:

Code:
//#define sclk 13
//#define mosi 11
#define cs   10
#define dc   9
#define rst  8  // you can also connect this to the Arduino reset

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

void setup(void) {
  Serial.begin(9600);
  tft.initR(INITR_REDTAB);   // initialize a ST7735R chip, red tab
    Serial.println("init");
    tft.fillScreen(ST7735_BLUE); // Display mit blau löschen
   
// ein CHAR soll geschrieben werden
int x = 10;              //10 Pixel nach rechts
int y = 10;              //10 Pixel nach unten
char c = 'A';            // Buchstabe "A"
int color = ST7735_RED;  // Textfarbe Rot
int bg = ST7735_BLACK;   // Texthintergrund Schwarz

 void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size);

// ...nichts wird ausgegeben.
// tft.drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size);
// klappt auch nicht.

}

void loop() {
}

Gruß, Antiriad
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Geschafft!

mit folgendem Code wird  ein rotes "A" auf schwarzem Hintergrung auf blauem Display geschrieben:
Code:
//#define sclk 13
//#define mosi 11
#define cs   10
#define dc   9
#define rst  8  // you can also connect this to the Arduino reset

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

void setup(void) {
  Serial.begin(9600);
  tft.initR(INITR_REDTAB);   // initialize a ST7735R chip, red tab
    Serial.println("init");
    tft.fillScreen(ST7735_BLUE); // Display mit blau löschen
   

// void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size);
// so klappt es:

  tft.drawChar(10, 10, 65, ST7735_RED, ST7735_BLACK, 1);

}

void loop() {
}

Danke für die Unterstützung, die mich zur Lösung geführt hat!

Gruß, Antiriad
Logged

Pages: [1]   Go Up
Jump to: