اطلاعیه

Collapse
No announcement yet.

مشکل با ایسی تچ اسکرین xpt2046????

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل با ایسی تچ اسکرین xpt2046????

    سلام
    من برنامه زیر رو برای تاچ نوشتم ولی یه خورد مشکل داره
    یعنی یا اعداد پرش دارند
    و همیشه هم مقدار x یه مقدار بزرگ هست برابر با 3968
    unsigned char xpt_buf[4];
    GPIOB->ODR &=~(1<<12);
    xpt2046_send_cmd(0x91);
    while((GPIOB->IDR & 0X0001)==1){}
    HAL_SPI_Receive(&hspi2,&xpt_buf[0],1,100);
    HAL_SPI_Receive(&hspi2,&xpt_buf[1],1,100);

    xpt2046_send_cmd(0xD1);
    while((GPIOB->IDR & 0X0001)==1){}
    HAL_SPI_Receive(&hspi2,&xpt_buf[2],1,100);
    HAL_SPI_Receive(&hspi2,&xpt_buf[3],1,100);

    *x=((xpt_buf[0]<<8)|(xpt_buf[1]))>>4;
    *y=((xpt_buf[2]<<8)|(xpt_buf[3]))>>4;
    GPIOB->ODR |=(1<<12);

    این برنامه بهینه شده نیست و اشکالاتی از لحاظ تعداد متغیر و ... این ها دارد به این قسمت هاش توجه نفرمایید

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    آقا درست شد
    من خط busy رو چکش رو برداشتم برنامه درست شد
    while((GPIOB->IDR & 0X0001)==1){}
    به علاوه اینکه داخل قسمت ارسال کامند هم یه بار بعد از ارسال کامند مشغول گرفتن اطلاعات هم میشدم یعنی
    این جا رو هم اصلاح کردم
    unsigned char get;
    HAL_SPI_Transmit(&hspi2,&cmd,1,100);
    //HAL_SPI_Receive(&hspi2,&get,1,100);
    return get;

    خب حالا سوال اینه که روش کالیبراسیون چی باشه که کاربر بتونه راحت باهاش کار کنه ؟؟؟


    دلیل: ادغام دو پست برای جلوگیری از اسپم

    هنوز پرش داره اعداد تایم خوندن رو هر یک ثانیه کردم پرش ها مشخص شدن ولی در تایم های خیلی سریع این پرش ها بسیار جزیی می شوند
    جدیدترین ویرایش توسط seyed saeed; ۱۴:۴۵ ۱۳۹۸/۱۲/۱۲.
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

    #2
    پاسخ : مشکل با ایسی تچ اسکرین xpt2046????

    کالیبراسیون رو کسی نظری نداره ؟
    الان که هیچ فشاری روی تاچ نیست خروجیش به این شکله
    x=2032
    y=0
    دوستانی که تجربه دارند نظرشون چیه ؟
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    پیامبر اکرم(ص):زکات علم نشر آن است.
    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

    دیدگاه


      #3
      پاسخ : مشکل با ایسی تچ اسکرین xpt2046????

      الان وقتی 12 بیتی می خونیم نباید بیش ترین مقدار 4096 یا نزدیکاش باشه
      خب این در حالت بی کاری که 2032 نشون میده و وقتی هم دستم رو روی صفحه جابه جا می کنم حداکثر 1600 میشه کم ترین مقدار هم نزدیک به 300 هست
      اللهم صل علی محمد و ال محمد و عجل فرجهم
      پیامبر اکرم(ص):زکات علم نشر آن است.
      در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

      دیدگاه


        #4
        پاسخ : مشکل با ایسی تچ اسکرین xpt2046????

        سلام مشکل خواندن اطلاعات حل شد فقط مسئله کالیبراسیون هست
        مشکل خواندن هم این بود که وقتی من از توابع استاندارد hal استفاده می کردم و می خواستم فقط spi کلاک بده تا اطلاعات خط ورودی رو بخونم این تابع یه مقداری رو
        به آی سی می فرستاد که آی سی هم فکر می کرد داره command جدید میاد و 5 بیت نهایی اطلاعات از بین می رفت
        HAL_SPI_Receive
        این تابع رو می گم
        حالا مسئله اصلی من الان کالیبره کردن هست
        الان مقدار x همیشه 4095 هست مگر زمانی که تاچ لمس بشه و y هم همیشه 0 مگر تاچ لمس بشه
        سمت چپ بالای تاچ
        x=250
        y=3900
        سمت چپ پایین
        x=1230
        y=1900
        سمت راست بالای تاچ
        x=3000
        y=2800
        سمت راست پایین
        x=3800
        y=128
        اللهم صل علی محمد و ال محمد و عجل فرجهم
        پیامبر اکرم(ص):زکات علم نشر آن است.
        در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

        دیدگاه

        لطفا صبر کنید...
        X