ARM裸机程序设计—触摸屏程序设计

触摸屏程序设计总结:
触摸屏工作流程以及程序设计流程:
一、触摸屏初始化:
  1、设置触摸屏接口为中断等待模式(ADCTSC寄存器),等待触摸笔按下
  2、清除源挂起寄存器(SRCPND)、中断挂起寄存器(INTPND)、子源挂起寄存器

(SUBSRCPND)
  3、程序入口函数,关中断屏蔽寄存器和子中断屏蔽寄存器(INTMSK,INTSUBMSK),中断

模式和中断优先级默认即可
二、触摸屏中断服务子程序:
   一)触摸笔按下中断
     4、如果中断发生,设置x,y坐标为自动转换模式
     5、启动AD转换,然后检测AD转换是否启动
     6、检测AD转换是否结束,若结束,获取x,y坐标的值
     7、对几个寄存器写1清零,防止反复发生中断(这里的中断是笔尖按下中断)
   二)触摸笔抬起中断
     8、设置触摸屏即可为等待中断模式,等待触摸笔抬起(ADCTSC,关键是要设置触摸

笔抬起中断信号)
     9、如果发生中断,不做任何操作,只打印出一句触摸笔抬起中断信息
     10、触摸笔抬起之后,把得到的x,y坐标值发送给PC机,显示出具体数值
   三)再次设置触摸屏为等待中断模式,等待下次触摸屏被按下

源程序:

//Main.c

/*************************************************
实验环境:mini2440开发板
完成时间:2011,4,14
作者:阿龍
实现功能:对触摸屏进行设置,通过串口把触摸屏上被按下的位置,用数值显示出来
遇到的问题:这里一定要对MMU_Init()进行初始化,不然程序会出在超级终端上显示错误。
**************************************************/
#define GLOBAL_CLK  1
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"
#include "mmu.h"
#include "profile.h"
#include "memtest.h"

void ADC_init(void);
void TC_init(void);
void delay(int times);
void Set_Clk(void);
static void cal_cpu_bus_clk(void);
static void __irq TChandler(void);
 int value_x=0;
 int value_y=0;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值