新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 液晶显示器边框精密检测系统的实现

液晶显示器边框精密检测系统的实现

作者:时间:2009-03-26来源:网络收藏

按照Cycle模式,其处理多通道数据的代码如下(以地址为0x10的那片ADS8364为例):
  PBDATDIR = 0XFFFB; // 给IOPB2一个低电平脉冲,复位ADS8364
  asm (' NOP');
  PBDATDIR |= 0X0004;
  PBDATDIR = 0XFFFD; // 给IOPB1一个低电平脉冲,触发ADS8364采样
  asm ('NOP');
  PBDATDIR |= 0X0002;
  Delay_2ms(); // 延时一段时间,等待采样结束
  /* 来自ADS8364的6个测量值:6个通道 */
  Channel1 = port10;
  Channel2 = port10;
  Channel3 = port10;
  Channel4 = port10;
  Channel5 = port10;
  Channel6 = port10;
3.2 基于总线的通讯模块
  测距数据采集板发送测距数据以中断的方式完成。TMS320LF2407有专门的mailbox中断,用于响应发送/接收中断。每个接触式传感器的测距值在内用2个字节存储,而总线传输标准要求每个数据帧最多只能传输8个字节的数据。本系统有12个传感器,共有24个字节存储所有测距值。总线传输所有测距值需要3个数据帧才能传送完。该系统中将通讯模块分成发送和接收模块两个部分。在设计中将发送和接收封装成结构体,大大简化了通讯驱动模块的设计,并可将此通讯结构应用在任何CAN通讯方面,具有很强的通用性。
  发送模块:
  typedef struct Transmit
  {
  BOOLEAN ExtendFlag;  // 扩展帧标志
  BOOLEAN RemoteFlag;   // 远程帧标志
  LONG ID;       // 本机地址
  BYTE DataLen;     // 发送数据长度
  BYTE Data[8];     // 待发数据缓冲区
  }TRANSMIT;
  接收模块:
  typedef struct Receive
  {
  BYTE  DataLen;
  BYTE Data[8];
  }RECEIVE;
  编写驱动函数不仅能省去对寄存器的繁琐设置,使数据帧的发送和接收更方便,而且可使代码具有很强的可移植性,调用驱动函数的代码完全可以在不同的系统中移植,只要改写驱动函数部分即可。
  本文介绍的显示器采用的方式,并用TMS320LF2407作为核心处理器,可以达到很高的测量精度。通过CAN总线通讯,可以将测量数据可靠地发给PC机,并大规模检测。此系统已经在实际生产中得到应用,验证了硬件系统的可靠性和稳定性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭