新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM7202觸摸屏接口設(shè)計(jì)方案

ARM7202觸摸屏接口設(shè)計(jì)方案

作者: 時間:2011-08-18 來源:網(wǎng)絡(luò) 收藏
4 程序

本文引用地址:http://butianyuan.cn/article/150331.htm

  的應(yīng)用程序模塊有:初始化、落筆中斷服務(wù)程序、A/D中斷服務(wù)程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序。初始化程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序是一般常規(guī)通用程序。驅(qū)動程序其核心是落筆中斷和A/D轉(zhuǎn)換這兩個中斷服務(wù)程序,以下是在uc/OS操作系統(tǒng)下觸摸屏驅(qū)動程序的兩個中斷服務(wù)程序,其詳細(xì)說明見注釋。

  static void TouchPenDownISR(int level) //落筆中斷服務(wù)程序

  {

  unsigned int status;

  status=*(volatile int *)PioCIS0xfff;

  if (status 0x80 )

  {

  *(volatile int *)PioCIC|=0x80; //清落筆中斷

  *(volatile int *)PioCIM=~0x80; //關(guān)落筆中斷

  *(volatile int *)PioCDR=~0x100; //使落筆中斷檢測無效,觸摸屏掃描電路有效

  *(volatile int*)ADCCR=~0x80; //開A/D電源

  *(volatile int*)ADCTPCR|=0x80|0x40; //觸摸屏讀有效,A/D中斷有效

  }

  }

  static void TouchINIISR(int level) //觸摸屏A/D轉(zhuǎn)換中斷服務(wù)程序

  {

  int x[4];

  int y[4];

  *adcisr |= 0x80; //清觸摸屏A/D中斷

  TouchSample(x,y); //得到X/Y方向數(shù)值

  *(volatile int*)ADCTPCR=~(0x80|0x40); //觸摸屏讀無效,觸摸屏A/D中斷無效

  *(volatile int *)PioCDR|=0x100; //使落筆中斷檢測有效,觸摸屏掃描電路無效

  if(*(volatile int *)PioCDR0x80) //檢測到起筆

  {

  *(volatile int *)PioCIC|=0x80; //清落筆中斷

  *(volatile int *)PioCIM|=0x80; //開落筆中斷

  *(volatile int *)ADCCR|=0x80; //關(guān)A/D電源

  *(volatile int*)ADCTPCR=~(0x80|0x40); //觸摸屏讀無效,觸摸屏A/D中斷無效

  }

  else //如仍有落筆

  {

  *(volatile int *)PioCDR=~0x100; //使落筆中斷檢測無效,觸摸屏掃描電路有效

  *(volatile int *)ADCTPCR|=0x80|0x40; //觸摸屏讀有效,觸摸屏A/D中斷有效

  }

  }

  5 結(jié)束語

  根據(jù)上述對觸摸屏工作機(jī)制的分析,筆者在實(shí)時嵌入式操作系統(tǒng)uc/OS下編寫的觸摸屏驅(qū)動程序應(yīng)用于基于的智能控制器,實(shí)踐證明系統(tǒng)穩(wěn)定可靠,滿足了在復(fù)雜的實(shí)時多任務(wù)環(huán)境中觸摸屏快速響應(yīng)的要求。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉