Электронная панель приборов на Due + 3,2 TFT

Тимур
Тимур аватар
Offline
Зарегистрирован: 30.04.2014

Начал делать панельку для снегохода при программировании наткнулся на проблему Дуе ругается на картики, выдаёт такое сообщение

 Arduino: 1.5.7 (Windows XP), Board: "Arduino Due (Programming Port)"
 
paneldue.ino: In function 'void setup()':
paneldue.ino:83:46: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:83:46: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:84:46: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:84:46: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:85:47: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:85:47: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:86:47: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:86:47: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:87:49: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:87:49: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:88:45: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:88:45: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
paneldue.ino:89:46: error: no matching function for call to 'UTFT::drawBitmap(int, int, int, int, unsigned int [900], int)'
paneldue.ino:89:46: note: candidates are:
In file included from paneldue.ino:12:0:
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int scale=1);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:228:8: note:   no known conversion for argument 5 from 'unsigned int [900]' to 'short unsigned int*'
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note: void UTFT::drawBitmap(int, int, int, int, short unsigned int*, int, int, int)
   void drawBitmap(int x, int y, int sx, int sy, bitmapdatatype data, int deg, int rox, int roy);
        ^
C:\Documents and Settings\DreamWolf\Мои документы\Arduino\libraries\UTFT/UTFT.h:229:8: note:   candidate expects 8 arguments, 6 provided
 
  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
 
 
если закоментить картинки то всё грузится нормально, на мегу тоже грузится нормально
сама прога
 

#include <UTFT.h>
#include <avr/pgmspace.h>
UTFT myGLCD(SSD1289,38,39,40,41);
// Declare which fonts we will be using
extern uint8_t SmallFont[];
extern uint8_t BigFont[];
extern uint8_t SevenSegNumFont[];

extern unsigned int bigtemp[900];
extern unsigned int temp[900];
extern unsigned int Park[900];
extern unsigned int hloff[900];
extern unsigned int akum2[900];
extern unsigned int reverse[900];
extern unsigned int oil[900];
extern unsigned int fuel[900];

extern unsigned int br[900];

int error;

// taho
int taho;
int t;
int y; 
int x2;
int y2;
int x3;
int y3;
int r;
int r2;

// engine temp
int engtemp;
int tt;
int ttt;
//fuel level
int flevel;
int fl;
int fll;
int ffll;

//brake
long tb;
long tp;
//speed
int speed;
int sp;

void setup()
{
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
  myGLCD.fillScr(100, 255, 255);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawBitmap (103, 84, 30, 30, temp, 1);
  myGLCD.drawBitmap (134, 84, 30, 30, Park, 1);
  myGLCD.drawBitmap (165, 84, 30, 30, hloff, 1);
  myGLCD.drawBitmap (196, 84, 30, 30, akum2, 1);
  myGLCD.drawBitmap (227, 84, 30, 30, reverse, 1);
  myGLCD.drawBitmap (258, 84, 30, 30, oil, 1);
  myGLCD.drawBitmap (289, 84, 30, 30, fuel, 1);
  
  //temp rect
  
  myGLCD.setColor(0,38,255);
  myGLCD.drawRect(103, 224, 132, 234);
  myGLCD.drawRect(103, 212, 132, 222);
  myGLCD.drawRect(103, 200, 132, 210);
  myGLCD.setColor(0, 0, 0);
  myGLCD.drawRect(103, 188, 132, 198);
  myGLCD.drawRect(103, 176, 132, 186);
  myGLCD.drawRect(103, 164, 132, 174);
  myGLCD.drawRect(103, 152, 132, 162);
  myGLCD.drawRect(103, 140, 132, 150);
  myGLCD.setColor(255,0,0);
  myGLCD.drawRect(103, 128, 132, 138);
  myGLCD.drawRect(103, 116, 132, 126);
  
  //fuel rect
 
  myGLCD.drawRect(289, 224, 317, 234);
  myGLCD.drawRect(289, 212, 317, 222);
  myGLCD.setColor(0, 0, 0);
  myGLCD.drawRect(289, 200, 317, 210);
  myGLCD.drawRect(289, 188, 317, 198);
  myGLCD.drawRect(289, 176, 317, 186);
  myGLCD.drawRect(289, 164, 317, 174);
  myGLCD.drawRect(289, 152, 317, 162);
  myGLCD.drawRect(289, 140, 317, 150);
  myGLCD.drawRect(289, 128, 317, 138);
  myGLCD.drawRect(289, 116, 317, 126);
  
  
  
  myGLCD.setBackColor(100,255,255);
  
  t = 100;
  tt = 0;
  engtemp = 0;
  ttt = 0;
  flevel=0;
  fl=0;
  fll=0;
  tb=0;
  tb=0;
  error=0;
}

void loop()
{ 
  
  myGLCD.setColor(0,0,0);

  //tahometer
myGLCD.setFont(SevenSegNumFont);
  taho = taho + t;
  if (taho > 9000){
  taho = 9000;
  t = -50; }
  if (taho <0) {
  t=50;
   }
  if(taho <1000) {
 myGLCD.printNumI(taho/100, 32, 1);
 myGLCD.print("0", 1, 1);
  } 
  else myGLCD.printNumI(taho/100, 1, 1); 
  
  //tahoscale
   r = map(taho, 0, 9000, 150, 200);
     
  // myGLCD.setColor(100,255,255);
  // myGLCD.drawLine(100,100,x2,y2);
 x2 = 218 + sin(2*PI*r/200)*200;   
 y2 = 218 - cos(2*PI*r/200)*200;   
 //x3 = 100 + sin(2*PI*r/200)*100;
 //y3 = 100 - cos(2*PI*r/200)*100;
myGLCD.setColor(150,230,0);
myGLCD.fillCircle(x2,y2, 15);
  

  // engin temp
 
   engtemp = engtemp + tt;
  if (engtemp >= 100){
   tt = -1; 
 }
   if (engtemp <= 0){
    tt= 1;
  }
 
  if (engtemp>=0 & engtemp<=10){
   myGLCD.setColor(100,255,255);
   myGLCD.fillRect(104, 233, 131, 225);
    ttt = engtemp ;
   myGLCD.setColor(0,38,255);
   myGLCD.fillRect (103, 234-ttt, 132, 234);
  
 }
    
 
 if (engtemp>=10 & engtemp<=20){
  myGLCD.setColor(100,255,255);
  myGLCD.fillRect(104, 221, 131, 213); 
   myGLCD.setColor(0,38,255);
  ttt=(engtemp-10);
   myGLCD.fillRect(103, 222-ttt, 132, 222);
   
   }
  
   
   if (engtemp>=20 & engtemp<=30){
  myGLCD.setColor(100,255,255);
  myGLCD.fillRect(104, 209, 131, 201);
  myGLCD.setColor(0,38,255);
  ttt=(engtemp-20);
   myGLCD.fillRect(103, 210-ttt, 132, 210);
   }
 
   if (engtemp>=30 & engtemp<=40){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 197, 131, 189);
    myGLCD.setColor(0, 0, 0);
     ttt=(engtemp-30);
   myGLCD.fillRect(103, 198-ttt, 132, 198);
   }
  
   if (engtemp>=40 & engtemp<=50){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 185, 131, 177);
    myGLCD.setColor(0, 0, 0);
     ttt=(engtemp-40);
   myGLCD.fillRect(103, 186-ttt, 132, 186);
   }
       
   if (engtemp>=50 & engtemp<=60){
   myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 173, 131, 165);
    myGLCD.setColor(0, 0, 0);
     ttt=(engtemp-50);
   myGLCD.fillRect(103, 174-ttt, 132, 174);
   }
      
   if (engtemp>=60 & engtemp<=70){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 161, 131, 153);
    myGLCD.setColor(0, 0, 0);
     ttt=(engtemp-60);
   myGLCD.fillRect(103, 162-ttt, 132, 162);
   }
       
    if (engtemp>=70 & engtemp<=80){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 149, 131, 141);
    myGLCD.setColor(0, 0, 0);
      ttt=(engtemp-70);
   myGLCD.fillRect(103, 150-ttt, 132, 150);
   }
     
    if (engtemp>=80 & engtemp<=90){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 137, 131, 129);
    ttt=(engtemp-80);
    myGLCD.setColor(255,0,0);
   myGLCD.fillRect(103, 138-ttt, 132, 138);
   }
  
      if (engtemp>=90 & engtemp<=100){
    myGLCD.setColor(100,255,255);
    myGLCD.fillRect(104, 125, 131, 117);
    ttt=(engtemp-90);
    myGLCD.setColor(255,0,0);
   myGLCD.fillRect(103, 126-ttt, 132, 126);
   }
     
    // high engine temp
    if (engtemp >=82){
  // myGLCD.drawBitmap(103, 84, 30, 30, bigtemp);
   error = 1;
   }
   else if (error==1){
  // myGLCD.drawBitmap(103, 84, 30, 30, temp);
   error=0;
   
   }

 // Fuel level

 
}

 

 
Тимур
Тимур аватар
Offline
Зарегистрирован: 30.04.2014

картинки делал этим конвертером http://www.henningkarlsen.com/electronics/t_imageconverter565.php галочки стояли на .с и чипкит/дуэ, да и просто на ардуину пробывал

Тимур
Тимур аватар
Offline
Зарегистрирован: 30.04.2014

проблема решена

extern short unsigned int bigtemp[900];
extern short unsigned int temp[900];
extern short unsigned int Park[900];
extern short unsigned int hloff[900];
extern short unsigned int akum2[900];
extern short unsigned int reverse[900];
extern short unsigned int oil[900];
extern short unsigned int fuel[900];

extern short unsigned int br[900];