aide programme C

aide programme C - C - Programmation

Marsh Posté le 01-06-2015 à 19:26:34    

Bonsoir,
 
je voudrais afficher une courbe sur un afficheur (tft touch shield v2.0), c'est un ecran arduino, et je dois le configurer avec un chipkit max 32 avec le logiciel MPide.
 
Mais, je n'arrive pas a inclure les librairie, car il me dit qu'il y des erreur, si vous pouviez m'aider??
 
merci.
 
http://www.noelshack.com/2015-23-1433179045-erreur-mpide.jpg

Reply

Marsh Posté le 01-06-2015 à 19:26:34   

Reply

Marsh Posté le 01-06-2015 à 20:35:30    

T'arrives à lire les messages compilo avec cette taille de police? :ouch:  
 
image directe: http://image.noelshack.com/fichier [...] -mpide.jpg
 
Bon, la première erreur est claire non? Ton Chipkit il y a un PIC dessus mais paint.cpp utilises du code (assembleur?) qui ne fonctionne que sur AVR. Soit tu adapte le code, soit tu trouves une autre library d'affichage qui fonctionne (aussi) sur PIC...

Reply

Marsh Posté le 01-06-2015 à 21:05:37    

ok merci

Reply

Marsh Posté le 01-06-2015 à 21:57:50    

Un autre problème, la j'ai un programme qui normalement fonctionne, et pour moi ne marche pas si vous pouviez m'aider??
 
c'est pour afficher une courbe  
 
http://www.noelshack.com/2015-23-1433188536-1er-partie.jpg
http://www.noelshack.com/2015-23-1433188526-2eme-partie.jpg
http://www.noelshack.com/2015-23-1433188506-3eme-partie.jpg
 
j'ai changer la référence de l'écran mais rien ni fait.

Reply

Marsh Posté le 01-06-2015 à 22:05:11    

Merci de corriger les liens images pour les afficher directement. Faut avoir une adresse avec image.noelshack.com/....


Message édité par rat de combat le 01-06-2015 à 22:05:36
Reply

Marsh Posté le 01-06-2015 à 22:22:48    

Code :
  1. #include <UTFT.h>
  2. extern uint8_t SmallFont[];
  3. extern uint8_t BigFont[];
  4. extern uint8_t SevenSegNumFont[];
  5. extern unsigned short icon1[0x400];
  6. extern unsigned short icon2[0x400];
  7. extern unsigned short tux[0x1000];
  8. UTFT myGLCD(ITDB28,2,3,4,5,6);  //MOSI, SCLK, CS, RESET, RS
  9. int i;
  10. void setup()
  11. {
  12.   myGLCD.InitLCD(PORTRAIT);
  13.   myGLCD.clrScr();
  14. }
  15. void loop()
  16. {
  17.   // Draw crosshairs
  18.   myGLCD.fillScr(255,255,255);
  19.   myGLCD.setColor(0,0,0);
  20.   myGLCD.drawLine(63,14,63,115);
  21.   myGLCD.drawLine(1,63,126,63);
  22.   for(i=3;i<128;i+=10) myGLCD.drawLine(i,61,i,65);
  23.   for(i=14;i<118;i+=10) myGLCD.drawLine(61,i,65,i);
  24.  
  25.   // Draw sin-, cos- and tan-lines   
  26.   myGLCD.setFont(SmallFont);
  27.   myGLCD.setColor(255,0,0);
  28.   myGLCD.print("Sin",2,14);
  29.   for (int i=1; i<126; i++)
  30.   {
  31.     myGLCD.drawPixel(i,63+(sin(((i*2.85)*3.14)/180)*45));
  32.     delay(100);
  33.   }
  34.  
  35.   myGLCD.setColor(0,0,255);
  36.   myGLCD.print("Cos",2,26);
  37.   for (int i=1; i<126; i++)
  38.   {
  39.     myGLCD.drawPixel(i,63+(cos(((i*2.85)*3.14)/180)*45));
  40.     delay(100);
  41.   }
  42.   delay(1000);
  43.  
  44.   // Test lines
  45.   myGLCD.fillScr(255,255,255);
  46.   myGLCD.setFont(SmallFont);
  47.   for(i=0;i<16;i++)
  48.   {
  49.     switch(i)
  50.     {
  51.       case 0: case 7: case 14:
  52.       {
  53.         myGLCD.setColor(0,0,0);
  54.         break;
  55.       }
  56.       case 1: case 8: case 15:
  57.       {
  58.         myGLCD.setColor(0,0,255);
  59.         break;
  60.       }
  61.       case 2: case 9:
  62.       {
  63.         myGLCD.setColor(0,255,0);
  64.         break;
  65.       }
  66.       case 3: case 10:
  67.       {
  68.         myGLCD.setColor(0,255,255);
  69.         break;
  70.       }
  71.       case 4: case 11:
  72.       {
  73.         myGLCD.setColor(255,0,0);
  74.         break;
  75.       }
  76.       case 5: case 12:
  77.       {
  78.         myGLCD.setColor(255,0,255);
  79.         break;
  80.       }
  81.       case 6: case 13:
  82.       {
  83.         myGLCD.setColor(255,255,0);
  84.         break;
  85.       }
  86.     }
  87.     myGLCD.print("shahrulnizam.com",CENTER,10*i);
  88.     delay(1000);
  89.   }
  90.  
  91.  
  92. }

Reply

Marsh Posté le 01-06-2015 à 22:22:49    

Du code source sous forme d'images c'est un peu... disons pas optimal...
 

Citation :

j'ai changer la référence de l'écran mais rien ni fait.


sans te tromper? Et le programme supporte bien cet écran là?

Reply

Marsh Posté le 01-06-2015 à 22:27:23    

Parfois faut juste lire la doc...
 

Citation :

chipkit max 32


 

Citation :


http://forum.arduino.cc/index.php? [...] tach=99356
DM-TFT28-105 DMTFT28105 ILI9341 Not compatible with chipKit


 
 
(C'est quoi ce pdf dont on ne peut copier du texte? :pfff: )

Reply

Marsh Posté le 01-06-2015 à 22:34:32    

je te remercie pour toute ces informations.
 
bonne soiré.

Reply

Marsh Posté le 01-06-2015 à 22:34:32   

Reply

Marsh Posté le 02-06-2015 à 12:02:59    

bon du coup j'ai prit un arduino mega 2560 qui est compatible avec l'ecran.
 
je voudrais savoir comment faire une courbe??

Reply

Marsh Posté le 02-06-2015 à 14:02:08    

Désolé, là j'ai envie de répondre RTFM. Pour l'utilisation générale de telle ou telle library il y a la doc, pour la courbe en soi si il n'y a pas de fonction directe faut la tracer point par point, genre

Code :
  1. for(x=0;x<XMAX;x++)
  2. {
  3.     y=calcul(x);
  4.     setPixel(x,y);
  5. }


Il doit y avoir des tonnes d'exemples sur le net (au pire chercher en anglais).

Reply

Marsh Posté le 02-06-2015 à 20:52:40    

Code :
  1. #include <TFTv2.h>
  2. #include <SPI.h>
  3. #include <math.h>
  4. void setup()
  5. {
  6.  
  7. double A=100; //amplitude de 100 points de la sinus
  8. double wt; //variable de l'angle du sinus
  9. double db_Res;
  10. int i_Res;
  11. int last_Res = 118;
  12. Tft.TFTinit(); //initialisation de l'afficheur
  13. for(int i=1; i<320; i++)
  14.   {
  15.     db_Res = round(A*sin(6*PI/320*i)+118); //sert a calculer la valeur du signal sinus
  16.     i_Res = (int) db_Res; //convertir un double en INT
  17.     Tft.drawLine (last_Res, i-1, i_Res,i,RED); //tracage de la courbe
  18.     last_Res = i_Res; //on met a jour l'ancinne valeur i_Res
  19.     }
  20. }
  21. void loop()
  22. {
  23.   // put your main code here, to run repeatedly:
  24. }


 
esque vous pourriez m'aider car je dois faire la meme chose que se programme (tracer une sinus), mais je dois le changer, faire la meme chose tracer une sinus mais avec un code different.

Reply

Marsh Posté le 03-06-2015 à 13:54:23    

C'est quoi cet exercice à la noix? Y a pas mille façons de faire...

 

Dans ton code on approxime(?) la courbe par des segments de droites, c'est une possibilité aussi, plus rapide mais plus ou moins "beau" au niveau de l'affichage (selon les paramètres qu'on a).

 

edit: Après refléxion, cette histoire de droites c'est plutôt pour être sûr d'avoir une courbe "continue" même si les valeurs que sors la fonction varient rapidement.


Message édité par rat de combat le 03-06-2015 à 14:16:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed