گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

گرداننده و نگارنده : محمد نوری

البرز ، کرج ، گلشهر

09125623558
Nouri.Iut@Gmail.Com

جهت حمایت از این وبلاگ، ما را به یک فنجان چای داغ مهمان کنید.
6273-8111-1003-9762

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید

تبلیغات

آخرین نظرات

پیوندها

#define  LCD_PIXEL_WIDTH   ((uint16_t)320)

#define  LCD_PIXEL_HEIGHT  ((uint16_t)240)

 

.....

 

#define TS_SWAP_NONE        0x00

#define TS_SWAP_X           0x01

#define TS_SWAP_Y           0x02

#define TS_SWAP_XY          0x04

 

.....

 

typedef enum

{

  TS_OK       = 0x00,

  TS_ERROR    = 0x01,

  TS_TIMEOUT  = 0x02

}TS_StatusTypeDef;

 

.....

 

typedef struct

{

  uint16_t TouchDetected;

  uint16_t x;

  uint16_t y;

}TS_StateTypeDef;

 

.....

 

static uint16_t ts_x_boundary, ts_y_boundary;

static uint8_t  ts_orientation;

 

.....

 

// xSize: Maximum X size of the TS area on LCD ==>> LCD_PIXEL_WIDTH

// ySize: Maximum Y size of the TS area on LCD ==>> LCD_PIXEL_HEIGHT

void TS_Init(uint16_t xSize, uint16_t ySize)

{

  /* Initialize x and y positions boundaries */

  ts_x_boundary  = xSize;

  ts_y_boundary  = ySize;

  ts_orientation = TS_SWAP_XY;

 

  /* Initialize the LL TS Driver */

  TSC_Init();

  TSC_Start();

}

 

.....

 

uint8_t TS_GetState(TS_StateTypeDef *TS_State)

{

  static uint32_t _x = 0, _y = 0;

  uint16_t xDiff, yDiff , x , y;

  uint16_t swap;

 

  TS_State->TouchDetected = TS_DetectTouch();

 

  if(TS_State->TouchDetected)

  {

    TS_GetXY(&x, &y);

   

    if(ts_orientation & TS_SWAP_X)

    {

      x = 4096 - x; 

    }

   

    if(ts_orientation & TS_SWAP_Y)

    {

      y = 4096 - y;

    }

   

    if(ts_orientation & TS_SWAP_XY)

    {

      swap = y;

      y = x;     

      x = swap;     

    }

   

    xDiff = x > _x? (x - _x): (_x - x);

    yDiff = y > _y? (y - _y): (_y - y);

   

    if (xDiff + yDiff > 5)

    {

      _x = x;

      _y = y;

    }

   

    TS_State->x = (ts_x_boundary * _x) >> 12;

    TS_State->y = (ts_y_boundary * _y) >> 12;

  } 

 

  return TS_OK;

}

.....

نظرات  (۱)

سلام
شرمنده من هر چی کد می زنم این پایه pen_irq اینتراپت نمیده
از دیتاشیتش هم چیز خاصی متوجه نشدم
من چجوری این پایه اینتراپتشو فعال کنم :(
ممنون میشم کمکم کنید
کارم گیره

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی