新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM7支持触摸屏和实时操作系统的开发与应用

基于ARM7支持触摸屏和实时操作系统的开发与应用

作者:时间:2010-09-25来源:电子产品世界

  其中,ReadTouchXY()函数通过TOUCH_X_MeasureX(void)、TOUCH_X_MeasureY(void)读取对应坐标的X、Y轴的电压值,并送入主控程序进行坐标转化,得出当前按压的位置。

本文引用地址:http://www.eepw.com.cn/article/112971.htm

  int ReadTouchXY(unsigned char

  command)

  {

  //根据command参数,进行X、Y向触摸点选择、去抖、位置的计算等

  return ack;//返回对应位

  置值;

  }

  mC/GUI及与操作系统的接口

  mC/GUI是运行于操作系统之上的程序,它既需要与操作系统协调,又需要与各种输入/输出设备协调,即通过输入设备接收用户请求,通过输出设备发送微处理器的处理结果。因此,mC/GUI的接口主要包括两个:与操作系统的接口和与输入/输出设备的接口,这也正是在移植mC/GUI的过程中所要解决的关键问题。mC/GUI与mC/OS-II结合应用时通过上锁和解锁来解决资源互斥的问题,其过程是通过在关键区域入口设置GUI_X_Lock()以获得专一访问权,用完后在出口处设置GUI_X_Unlock()让出资源,达到多个GUI任务对同一数据在关键区域内访问的互斥。

  在mC/GUI移植到mC/OS-II的过程中,需要利用操作系统的资源来实现GUI所需要的功能,即利用μC/OSII提供的时间管理、任务管理和资源共享机制来实现μC/GUI中相应的功能,具体要实现以下函数的重新定义:

  (1)时间函数

  GUI_X_Delay() //延迟指定的时间段后返回

  GUI_X_ExecIdle() //视窗管理器的非堵塞函数调用

  GUI_X_GetTime() //返回当前

  系统的时间,以毫秒为单位

  (2)内核接口函数

  GUI_X_InitOS() //初始化内核

  接口模块

  GUI_X_GetTaskID() //返回一个

  当前任务/线程唯一的32位标识符

  GUI_X_Lock() //给GUI上锁

  GUI_X_UnLock() //解锁GUI

  GUI_X_Log() //返回调试信息

  (3)LCD底层驱动程序

  要使mC/GUI能够在目标系统上运行,首先要对mC/GUI进行配置和修改,也就是移植。移植工作主要是指对配置头文件中的宏定义根据具体情况进行修改,包括LCD宏和LCD控制器宏。使用mC/GUI库函数时,必须在主函数前调用头文件“gui.h”,并根据需要做适当的修改。值得注意的是,在此文件的预定义语句中,必须将GUI_SUPPORT_TOUCH设为1。如果需要在屏幕上显示中文,除了添加中文字库到工程中外,还需要将GULDEFAULT_FONT设为&GULFontHZ12,HZ12代表使用的中文字体。如果需要在mC/GUI的控件中使用中文,也需要在控件的预定义语句中作相应的修改。由于7芯片S3C44B0X内部集成了LCD控制器,LCD底层驱动程序主要是设计与LCD屏相关的参数以及其特殊的控制寄存器,主要包括以下的参数和寄存器:

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

  #dene SCR_YSIZE (240)

  //LCD垂直尺寸

  #dene LCD_XSIZE (640)

  //LCD水平分辨率

  #dene LCD_YSIZE (240)

  //LCD垂直分辨率

  #define ARRAY_SIZE_COLOR (SCR_XSIZE/1*SCR_YSIZE)

  //LCD水平与垂直比例

  #define HOZVAL_COLOR (LCD_XSIZE*3/8-1)

  //LCD水平字节尺寸

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

  #dene SCR_XSIZE (640)

  //LCD水平尺寸

c语言相关文章:c语言教程


模数转换器相关文章:模数转换器工作原理




关键词: ARM 触摸屏 μC/GUI 201009

评论

技术专区

关闭