新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > ARM嵌入式系統中觸摸屏的中斷控制方法

        ARM嵌入式系統中觸摸屏的中斷控制方法

        作者: 時間:2010-06-25 來源:網絡 收藏

        首先必須弄清楚SUBSRCPND與SRCPND之間的關系,幾個SUBSRCPND可能對應同一個SRCPND。經過不斷總結,得出的對應關系如表1所列。從表中可知,要用到SUBSRCPND中的INT_TC位,即SUBSRCPND[9]。這里定義變量:
        #define BIT_SUB_TC(0x19)
        與之對應的是SRCPND中的INT_ADC位,即SRCPND[31],又定義變量:
        #define BIT_ADC(0xl31)
        INTMOD與PRIORITY采用默認設置。因此,可以把的中斷過程寫為:

        本文引用地址:http://www.104case.com/article/195384.htm



        3.2 中斷與觸摸屏中斷程序
        首先使能芯片的中斷向量。當有IRQ中斷到來,CPU會自動到0x18地址處取指。0x18處的指令是CPU根據中斷源算好的。這里觸摸屏的中斷INT-ADC來了,那么0x18處的指令就是跳轉到地址0x9c處。然后就執行“ldr pc,=HandlerINT_ADC”這條指令。這條指令的執行結果就是跳轉到“HandlerINT_ADC”處執行。
        那么“HandlerINT_ADC”處又是什么指令呢?從訪問絕對地址的內存位置“#define pISR_ADC(*(unsigned*)(ISR_STARTADDRESS+0x9c))”可知,“HandlerINT_ADC”處的地址就是_ISR_STARTADDRESS+0x9C。
        上述語句把無符號整數_ISR_STARTADDRESS+0x9c強制轉換為指針,指向RAM,通過語句“pISR_ADC=(int)touchscreen;”對它進行訪問,touchscreen即為所定義的觸摸屏中斷程序,該中斷服務程序必須使用“__irq關鍵字進行聲明。這樣,用戶在自己的程序中,將中斷服務程序的地址賦給該指針,從而將觸摸屏的中斷與觸摸屏的中斷程序聯系起來。整個觸摸屏中斷與觸摸屏中斷程序的聯系如圖2所示。

        結語
        本文完成了觸摸屏相關中斷寄存器的設置,并編寫了觸摸屏的中斷處理程序,采用編寫“__irq”函數的實現了基于中斷的觸摸屏控制。在實際應用中,該程序設計簡單可靠,觸摸點坐標值讀取準確,且無粘滯現象,達到了預期效果。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柏乡县| 纳雍县| 沂源县| 云阳县| 安丘市| 绍兴市| 巴塘县| 长治市| 扶沟县| 周至县| 裕民县| 扎赉特旗| 南充市| 通道| 曲阳县| 怀来县| 玛纳斯县| 扎赉特旗| 军事| 房产| 巫山县| 阳新县| 长海县| 合作市| 噶尔县| 通山县| 台南县| 祁东县| 乌拉特后旗| 鄂尔多斯市| 疏附县| 秭归县| 比如县| 闸北区| 汝城县| 南溪县| 柞水县| 文水县| 青阳县| 临朐县| 南雄市|