Pages: [1]   Go Down
Author Topic: Eigene Lib für Touch-Lcd MIO283QT-2 von Watterott  (Read 1313 times)
0 Members and 1 Guest are viewing this topic.
Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich möchte für das Touch-LCD MIO283QT-2 von Watterott eine eigene Ergänzungs-Library schreiben.
Damit meine ich, die originale Lib "lcd" und meine eigene Lib "mylcd" (die die Funktionen der ersten verwendet) werden gleichzeitig verwendet.

Der erste Ansatz hat zwar funktioniert, aber sobald ich mehrere Funktionen mische, kommt es zu folgendem Effekt:

Absicht:
1. "lcd"      Der LCD wird Orange ausgemalt
2. "mylcd"  Der komplette LCD wird mit Rot überschrieben
3. "lcd"      Es wird eine weiße Linie gezogen
4. "mylcd"  Es wird eine schwarze Linie gezogen
5. "mylcd"  Der komplette LCD wird mit Gelb überschrieben
6. "mylcd"  Der komplette LCD wird mit Blau überschrieben

Effekt:
1. ok
2. ok
3. ok
4. passiert nichts
5. die weiße Linie wird gelb ausgemalt
6. die Linie wird nun blau ausgemalt
1. wieder ok
2. ......

Test_eigene_Lib
Code:
#include <MI0283QT2.h>
#include <ADS7846.h>
#include <Wire.h>
#include <LcdT.h>

MI0283QT2 lcd;
ADS7846 tp;
LcdT mylcd;

void setup()
{
  lcd.init(4);
  tp.init();
  Wire.begin();
  lcd.led(60);
}

void loop()
{
  lcd.clear(RGB(255,127,0));                    // Orange
  delay(1000);
  mylcd.clear(2);                               // Rot
  lcd.drawLine(0,20,100,20, RGB(255,255,255));  // Weiß
  delay(1000);
  mylcd.Strich(0,20,100,20,0);                  // Schwarz
  mylcd.clear(4);                               // Gelb
  mylcd.clear(6);                               // Blau
}
LcdT.h
Code:
#ifndef LcdT_h
#define LcdT_h
 
#include "WConstants.h"
#include "MI0283QT2.h"

class LcdT
{
  private:
    MI0283QT2 lcd;
       
  public:
    LcdT();
    void clear( byte Nr);
    void Strich( unsigned int X1, unsigned int Y1, unsigned int X2, unsigned int Y2, byte Nr);
};

#endif
LcdT.cpp
Code:
#include "WProgram.h"
#include "LcdT.h"
#include "MI0283QT2.h"




byte Farben[][3] = { {   0,   0,   0 },   //  0 Schwarz
                     { 255, 255, 255 },   //  1 Weiß

                     { 255,   0,   0 },   //  2 Rot
                     { 255, 127,   0 },   //  3 Orange
                     { 255, 255,   0 },   //  4 Gelb
                     {   0, 255,   0 },   //  5 Grün
                     {   0,   0, 255 },   //  6 Blau
                     { 255,   0, 255 },   //  7 Violett

                     {   0, 255, 255 },   //  8 Türkis
                     { 100, 100, 255 },   //  9 Blau2
                     {   0, 204,   0 },   // 10 Grün2
 };


LcdT::LcdT()
{return;}


void LcdT::clear(byte Nr)
{
  lcd.clear(RGB(Farben[Nr][0],Farben[Nr][1],Farben[Nr][2]));
  delay(1000);
}

void LcdT::Strich( unsigned int X1, unsigned int Y1, unsigned int X2, unsigned int Y2, byte Nr)
{
  lcd.drawLine( X1, Y1, X2, Y2, RGB(Farben[Nr][0],Farben[Nr][1],Farben[Nr][2]));
  delay(1000);
}
 

Was mache ich falsch?

Danke im Voraus für Eure Hilfe!
Gruß Reinhard
PS.: Das ganze läuft auf einem Arduino Mega 2560 direkt mit dem Display verkabelt.
Logged

Meran/BZ/IT
Offline Offline
Full Member
***
Karma: 0
Posts: 184
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Kann man eine Lib-A in eine andere Lib-B integrieren, sodaß sie sich Lib-A verhält, als ob die Funktionen direkt in Lib-B liegen würden?

mfg
Reinhard
Logged

Pages: [1]   Go Up
Jump to: