主题 : Tiny6410触摸屏问题求解 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 73747
精华: 0
发帖: 32
金钱: 170 两
威望: 34 点
贡献值: 0 点
综合积分: 64 分
注册时间: 2012-07-13
最后登录: 2013-07-24
楼主  发表于: 2012-12-05 11:11

 Tiny6410触摸屏问题求解

买了一个Tiny6410,配套的LCD是H43,现在在写触摸屏驱动,遇到了几个问题,首先是LCD的初始化代码:
复制代码
  1. volatile unsigned int LCD_BUFFER[272][480];
  2. unsigned int addr = (unsigned int)LCD_BUFFER;
  3. void lcd_init(){
  4.     GPECON = 0x00011111;    //GPE0: for LCD Backlight ON-OFF. GPE1~4 is GPIO.
  5.     GPEDAT =  0x00000001;    //Backlight ON  (some LCD(3.5) need it ,but NEC 4.3 not)
  6.     GPEPUD = 0x00000000;
  7.     //GPFCON = 0x96AAAAAA;    //PWM1: for Backlight Dimming. GPF13 is USB_PWR. GPF0~12 is CAM I/F.
  8.                     // PWM0 Control Buzzer,but now we config it as OUTPUT!!!
  9.     //GPFDAT =  0x00002000;    //USB_PWR ON . Buzzer OFF .
  10.     //GPFPUD = 0x00000000;
  11.     GPFCON &= ~(0x3<<30);
  12.     GPFCON |= 0x2<<30;
  13.     GPFPUD = 0;
  14.     GPICON = 0xAAAAAAAA;
  15.     GPIPUD = 0x00000000;
  16.     GPJCON = 0x00AAAAAA;
  17.     GPJPUD = 0x00000000;
  18.     
  19.     SPCON &= ~(0x3);
  20.     SPCON |= 1;
  21.     MIFPCON &= ~(1<<3);
  22.     
  23.     VIDCON0 = (0<<29)|(0<<26)|(0<<17)|(0<<16)|(9<<6)|(0<<5)|(1<<4)|(0<<2);
  24.              //(0<<29)|(0<<26)|(0<<17)|(1<<16)|(5<<6)|(0<<5)|(1<<4)|(0<<2);
  25.     VIDCON1 = 1<<7;//1=RGB 类型LCD 设备在VCLK 上升沿得到视频数据
  26.     //VIDCON1 = (1<<7);
  27. //+设置屏的时序
  28.     VIDTCON0 = (20<<16)|(30<<8)|(20<<0);//这两个寄存器的怎么设都没变化
  29.     VIDTCON1 = (20<<16)|(40<<8)|(60<<0);//
  30.     VIDTCON2 = (271<<11)|(479);
  31. //-
  32.     //WINCON0 = 8<<2;//(1<<17)|(3<<2);//窗口格式控制 0011=8BPP(palletized)
  33.     WINCON0 = 0xb<<2;
  34. //+VIDOSDxA ,VIDOSDxB:窗口位置控制
  35.     VIDOSD0A = (0<<11)|(0);
  36.     VIDOSD0B = (479<<11)|(271<<0);
  37.     VIDOSD0C = (((480*272*4)&0xFFFFFF)<<0);
  38. //-
  39.     VIDW00ADD0B0 = ((addr>>24)<<24)|(addr&0xffffff);
  40.     VIDW00ADD1B0 = (addr&0xffffff) + 480*272*4;
  41.     //VIDW00ADD2 = (0<<13)|(480);
  42.     //DITHMODE=(1<<5)|(1<<3)|(1<<1);
  43. //+开显示
  44.     VIDCON0 |= 3;
  45.     WINCON0 |= 1;
  46. //-    
  47. }

这是参照一个参考例子做的,刚运行时以为正常了,但是仔细看时发现触摸屏少了一列
就是水平方向上地址为0的一列不见了,另外,VIDTCON0/VIDTCON1的值胡乱设置,屏幕都没有反应,图像位置根本没有变化
小菜
级别: 新手上路
UID: 87015
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2013-01-28
最后登录: 2013-02-22
1楼  发表于: 2013-01-28 20:11
请问您现在的触摸屏驱动好用了吗??能不能共享一下??
QQ123638760
级别: 新手上路
UID: 87194
精华: 0
发帖: 21
金钱: 105 两
威望: 21 点
贡献值: 0 点
综合积分: 42 分
注册时间: 2013-02-01
最后登录: 2013-11-17
2楼  发表于: 2013-02-21 19:40
我也是Tiny6410,LCD是H43 求分享
QQ123638760
QQ123638760
级别: 新手上路
UID: 87194
精华: 0
发帖: 21
金钱: 105 两
威望: 21 点
贡献值: 0 点
综合积分: 42 分
注册时间: 2013-02-01
最后登录: 2013-11-17
3楼  发表于: 2013-02-21 19:42
楼主,请留个QQ好吧
QQ123638760