Fórum témák

» Több friss téma
Fórum » XPT2046 driver PIC32-höz (mikroC)
 
Témaindító: forgofe, idő: Aug 15, 2014
Témakörök:
Lapozás: OK   1 / 1
(#) forgofe hozzászólása Aug 15, 2014 /
 
(#) wartness hozzászólása Nov 5, 2014 /
 
Üdv!
Remélem segít egy kicsit.
(#) forgofe válasza wartness hozzászólására (») Nov 5, 2014 /
 
Üdv!
Igen néztem ezt a kódot, de sajnos nálam ez nem működött. Ezért egy másik megoldáshoz folyamodtam, de sikerült megoldani íme a kód:
  1. // Global variables
  2. unsigned int Xcoord, Ycoord;
  3. char PenDown;
  4. void *PressedObject;
  5. int PressedObjectType;
  6. unsigned int caption_length, caption_height;
  7. unsigned int display_width=480, display_height=272;
  8.  
  9. sbit SPI_TP_CS at LATA7_bit;
  10. sbit SPI_TP_CS_Direction at TRISA7_bit;
  11. sbit SPI_TP_IRQ at LATE9_bit;
  12. sbit SPI_TP_IRQ_Direction at TRISE9_bit;
  13.   unsigned int x, y;
  14.   unsigned int x_min=450, x_max=3500, y_min=280, y_max=3700;
  15.  
  16. void SPI_TP_Init() {
  17.   SPI_TP_CS_Direction = 0;
  18.   SPI_TP_IRQ_Direction = 1;
  19.   SPI_TP_CS = 1;
  20.  
  21.   Xcoord = 0;
  22.   Ycoord = 0;
  23. }
  24. char xkoord[7];
  25. char ykoord[7];
  26. extern unsigned int color;
  27. extern unsigned int enableDRAW;
  28. void SPI_TP_Check() {
  29. if(SPI_TP_IRQ == 1) {
  30.     if(SPI_TP_Get_Coordinates(&Xcoord, &Ycoord) == 0) {
  31.       Process_TP_Press(Xcoord, Ycoord);
  32.         delay_ms(100); // Anti rebond
  33.         if(enableDRAW==1) {
  34.       TFT_Dot(Xcoord, Ycoord, color);
  35.       TFT_Dot(Xcoord + 1, Ycoord, color);
  36.       TFT_Dot(Xcoord,Ycoord + 1, color);
  37.       TFT_Dot(Xcoord + 1, Ycoord + 1, color);
  38.       }
  39.     }
  40.   }
  41. }
  42.  
  43. unsigned int SPI_TP_Read_Once(char address) {
  44.   unsigned int val;
  45.  
  46.   SPI2_Write(address);
  47.  
  48.   val = SPI2_Read(0);
  49.   val <<= 8;
  50.   val += SPI2_Read(0);
  51.   val >>= 3;
  52.  
  53.   return val;
  54. }
  55.  
  56. unsigned int xregi=0;
  57.   char SPI_TP_Get_Coordinates(unsigned int *x_coordinate, unsigned int *y_coordinate) {
  58.  
  59.   float x_div=11.213235294, y_div=7.125;
  60.  
  61.   SPI_TP_CS = 0;
  62.   SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT,80, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_IDLE_2_ACTIVE);
  63.     y = SPI_TP_Read_Once(0xD0);
  64.     x = SPI_TP_Read_Once(0x90);
  65.  
  66.  
  67.   y=abs((y-3830))/y_div;
  68.   x=abs((x-3600))/x_div;
  69.  
  70.   SPI_TP_CS = 1;
  71.  
  72.   Xcoord=y;
  73.   Ycoord=x;
  74.   return 0;
  75.  
  76. }


Ez már visual TFT-s projektekkel is működik teljesen mértékben.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem