1. 程式人生 > >【mt8735】LCD螢幕顯示180°旋轉

【mt8735】LCD螢幕顯示180°旋轉

我司“自動稱重掃描分揀系統”使用我司自己的工業平板,取代了原來的PC機,大大降低了成本。
 

視訊連結

由於“自動稱重分揀系統”產品的特殊要求,工業平板的掃碼頭是需要朝下,這樣 一來,我們所看到的畫面就是倒的,根本不可使用,因此,需要將LCD顯示180°旋轉。
 
將LCD顯示180°旋轉,需要做系統底層的修改,具體實現方法如下(以實際專案為例):
1. 更改MTK_LCM_PHYSICAL_ROTATION的值
    MTK_LCM_PHYSICAL_ROTATION = 180
    所涉及到的檔案有:
    bootable/bootloader/lk/project/xxxxxx.mk
    device/raindi/xxxxxx/ProjectConfig.mk

    kernel-3.10/arch/arm64/configs/xxxxx_defconfig
    kernel-3.10/arch/arm64/configs/xxxxxx_debug_defconfig
2. 開機動畫的旋轉
   涉及到的檔案:
   frameworks/native/services/surfaceflinger/DisplayDevice.cpp
   將setProjection(DisplayState::eOrientationDefault, mViewport, mFrame);修改為:setProjection(DisplayState::eOrientation180, mViewport, mFrame);

   修改的引數是:eOrientationDefault 改為 eOrientation180
3. 觸控式螢幕座標的修改
    顯示屏旋轉了180°,那麼觸控式螢幕也要旋轉180°,這樣才能方便使用。
    涉及到的檔案:
    kernel-3.10/drivers/input/touchscreen/mediatek/GT9XX/gt9xx_driver.c
    涉及的函式:tpd_down、tpd_up
    修改方法:x = LCM_WIDTH - x 、 y = LCM_HEIGHT - y 

  1. // 修改例項,LCM_WIDTH = 1024, LCM_HEIGHT = 600
  2. static void tpd_down(s32 x, s32 y, s32 size, s32 id)
  3. {
  4. x = 1024-x;
  5. y = 600-y;
  6. ......
  7. }
  8. static void tpd_up(s32 x, s32 y, s32 id)
  9. {
  10. x = 1024-x;
  11. y = 600-y;
  12. ......
  13. }
4. 編譯
    因為我們已經更改了LCD原來的顯示方式,因此將上述修改做好之後,需要clean之後,全部重新編譯

    結合“自動稱重分揀系統”產品來看,我們的工業平板可以適應多種需求,甚至在某些方面取代笨重的PC機。