Saturday, July 5th 2008, 6:35am UTC+1

You are not logged in.

  • Login
  • Register

sar_van81

Trainee

Posts: 51

Location: India

Occupation: Embedded Programmer

21

Saturday, March 3rd 2007, 4:46am

hi emmdom,

i tried that option also ,but there is no change. i went through the touch screen docs to know what it sends to the serial port . in the docs its given like when the user presses the touch screen, it will send a 5 byte packet information wherein 1st byte indicates the status of the screen whether its touched or not, the next two byte represents the X coordinate and the last two Y coordinate. also in the driver file present in uclinux(mtouch.c) the driver receives the 5 byte data and processes it.the value of after processing are: in the range of (850 - 14565) for X and for Y (1300 - 15556).now i'm trying to convert these values to X (0-640), Y(0-480) values.

got any suggestions ?
saravanan
  • Go to the top of the page

emmdom

Trainee

Posts: 56

Location: New Mexico

Occupation: Embedded Programmer

22

Wednesday, March 7th 2007, 11:10pm

Hello

Man I thought might take care off the problem. I haven't had use the serial port for the touchscreen but I do recall what you are talking about from reading the documentation. I guess my suggestion at this point is as qt support for help if you have that option. Sorry I could not be of more help. Good Luck and please when you figure out you problem post the reply.

Emmanuel
emmdom
  • Go to the top of the page

sar_van81

Trainee

Posts: 51

Location: India

Occupation: Embedded Programmer

23

Saturday, March 24th 2007, 12:09pm

hi,

i altered the code of qmouselinuxtp_qws.cpp according to my touch screen and some how got the cursor movement according to the touch.thank you all for the suggestions.

but this is not over yet. now the problem i'm facing is in the datas recieved from the device.when there is a single click in the touch screen i get about 10 to 15 samples( for my touch screen one sample contains 5 bytes and all these i get in a single click). i'l accumulate them 5 times and then avarage them. these are similar to the original qmouselinuxtp_qws.cpp. the main problem is this 10 to 15 samples do not come at an instance. i mean for the first time my n value( this is the return value of the read call in readMouseData ) is 8 and second time is -1 wherein the do while loop fails and it processes the 8 bytes. next it again goes to read call and now the n value is 27 and-1 here again it goes for processesing. like this it continues for some time say for about 60 to 70 bytes.

the confusing part is that all these are done in only a single click. there are only two possibilites for this( if my understanding is correct).either the qt should read the datas incorrectly( i mean the read call in readMouseData may be reading with some offset or some delay there by a bunch of datas may be split) or the device does not send the datas continously at an instant.

on analyzing the output of the return value of read .i.e for the first time its 8 and second time its -1,i think there is no problem in the read function. we connected th touch screen to a windows systems through serial port(COM PORT1) and read the datas using port monitor software .( this software captures the data recieved in the serial port buffer and displays in the screen).in that the datas are correctly recieved at an instant. from this i think the second possibility is also correct.

now i'm realy in a confused state as to where can be the problem.

can anyone provide me any suggestions or solutions for this ?

thanks in advance,
saravanan
saravanan
  • Go to the top of the page

manju

Beginner

24

Thursday, March 29th 2007, 5:18am

Hi Phatbeatsboy

My touch screen and keypad are not working. I could see the mouse cursor once I run any qtopia example application (I have not tested my mouse yet....but more interested in keypad and touchscreen).

I tried commenting out the following in qmouselinuxtp.cpp:

# if defined(QT_QWS_IPAQ_RAW) || defined(QT_QWS_EBX_RAW)
mousePos = handler->transform( mousePos );
# endif

Even then the touch screen isnt working.
I am working on Freescale's iMX21 (ARM9268EJS) target and the OS is CELinux-040503. I am using QtopiaEmbedded-3.3.5

Am I missing anyting ?
Is there a specific switch I need to enable during configuration of Qtopia embedded ?

Please help me....I am stuck.....

Below is the boot up mesage sequence that I see when my target boots. I dont see specific message for touch screen.....is that ok ?

------------------------boot up messages-------------------------

blob> boot
Loading kernel from flash ........ done

Starting kernel ...

Uncompressing Linux.............................................................Linux version 2.4.20-celf3 (root@pcw-manju) (gcc version 3.3.2) #58 Fri Mar 16 7CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv?(8))
CPU: D undefined 14 cache
CPU: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Machine: Freescale i.MX2 ADS
FCLK=266000 kHz HCLK=133000 kHz IPGCLK=66500 kHz
PERCLKs: 1=44333 KHz 2=33250 kHz 3=44333 kHz 4=88666 kHz
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 noinitrd ip=none
Console: colour dummy device 80x30
Calibrating delay loop (skipped)... 132.71 BogoMIPS
Memory: 64MB = 64MB total
Memory: 62700KB available (1670K code, 330K data, 84K init)
Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
i.MX21 Dynamic Power Management
Starting kswapd
Disabling the Out Of Memory Killer
JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc.
i2c-core.o: i2c core module version 2.6.2 (20011118)
_init_fs453_i2c: unable to initialize: required adapter driver not present
dbmx21fb: error initializing FS453 TV out card I2C driver
_init_fbinfo: <3>start of _init_fbinfo
_init_fbinfo: <3>end of _init_fbinfo
_init_lcd_system: <3>start of _init_lcd_system
_init_lcd_system: <3>end of _init_lcd_system
dbmx21fb_set_var: <3>start of dbmx21fb_set_var
_decode_var: <3>start of _decode_var
_decode_var: <3>end of _decode_var
_encode_var: <3>start of _encode_var
_encode_var: var->xress=240
_encode_var: var->yres=320
_encode_var: var->xres_virtual=240
_encode_var: var->yres_virtual=320
_encode_var: var->bits_per_pixel=16
_encode_var: 16->a
_encode_var: 16->b
_encode_var: <3>end of _encode_var
dbmx21fb_set_dispsw: <3>start of dbmx21fb_set_dispsw
dbmx21fb_set_dispsw: <3>end of dbmx21fb_set_dispsw
dbmx21fb_setcolreg: <3>start of dbmx21fb_setcolreg
_enable_lcd_controller: <3>start of _enable_lcd_controller
_enable_lcd_controller: <3>end of _enable_lcd_controller
dbmx21fb_set_var: <3>end of dbmx21fb_set_var
dbmx21fb_set_var: <3>start of dbmx21fb_set_var
_decode_var: <3>start of _decode_var
_decode_var: <3>end of _decode_var
_encode_var: <3>start of _encode_var
_encode_var: var->xress=80
_encode_var: var->yres=80
_encode_var: var->xres_virtual=80
_encode_var: var->yres_virtual=80
_encode_var: var->bits_per_pixel=16
_encode_var: 16->a
_encode_var: 16->b
_encode_var: <3>end of _encode_var
dbmx21fb_set_dispsw: <3>start of dbmx21fb_set_dispsw
dbmx21fb_set_dispsw: <3>end of dbmx21fb_set_dispsw
_set_res: <3> fb=1 par.x=80, y=80
_set_res: <3> SR=500050
_set_res: <3> VPWR=28
_enable_lcd_controller: <3>start of _enable_lcd_controller
_enable_lcd_controller: <3>end of _enable_lcd_controller
dbmx21fb_set_var: <3>end of dbmx21fb_set_var
_init_lcd: <3>start of _init_lcd
_decode_var: <3>start of _decode_var
_decode_var: <3>end of _decode_var
_decode_var: <3>start of _decode_var
_decode_var: <3>end of _decode_var
_init_lcd: <3>Setting up Background Window
_init_lcd: <3> Writing SAR with c0301000
_init_lcd: <3> SAR=c0301000
_set_res: <3> fb=0 par.x=240, y=320
_set_res: <3> SR=f00140
_set_res: <3> VPWR=78
_init_lcd: <3>Setting up Graphics Window (overlay)
_init_lcd: <3> Writing SAR with c3fc1000
_init_lcd: <3> SAR=c3fc1000
_set_res: <3> fb=1 par.x=80, y=80
_set_res: <3> SR=500050
_set_res: <3> VPWR=28
_init_lcd: <3>LPCR=fb108bc7
_init_lcd: <3>LSCR=120300
_init_lcd: <3>LHCR=4000f06
_init_lcd: <3>LVCR=4000907
_init_lcd: <3>LRMCR=0
_init_lcd: <3>LDCR=30017
_init_lcd: <3>LGWDCR=30017
_init_lcd: <3>_init_lcd end
_init_lcd: <3>end of _init_lcd
_enable_lcd_controller: <3>start of _enable_lcd_controller
_enable_lcd_controller: <3>end of _enable_lcd_controller
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with no serial options enabled
UART driver version 0.3.6
Keypad Driver - Metrowerks
Pen Driver 0.4.2
Motorola SPS - Metrowerks
Motorola i.MX2 Watchdog Timer, written by Metrowerks.
Previous reset reason was: Software Reset.
WDT timeout = 60.0 secs (128 max)
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
cs89x0:cs89x0_probe(0x0)
PP_addr=0x3000
cs89x0.c: v2.4.3-pre1 Russell Nelson <nelson@crynwr.com>, Andrew Morton <andrewleth0: cs8900 rev K found at 0xe3000000 [Cirrus EEPROM]
cs89x0 media RJ-45, IRQ 8, programmed I/O, MAC 00:04:9f:00:5b:b4
cs89x0_probe1() successful
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
I2C driver Mar 13 2007 / 14:57:53
Initialize i2c-client-dbmx-codec module
dbmx-mw8731-audio: DMA channel 0 acquired (DBMX SSI TX)
dbmx-mw8731-audio: DMA channel 1 acquired (DBMX SSI RX)
Freescale i.MX21 ADS Flash: probing 32-bit flash bus
Freescale i.MX21 ADS Flash: Found 2 x16 devices at 0x0 in 32-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
Freescale i.MX21 ADS Flash: CFI does not contain boot bank location. Assuming t.number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Detected Spansion S29WS128N flash chips.
Using static partition definition
Creating 3 MTD partitions on "Freescale i.MX21 ADS Flash":
0x00000000-0x00020000 : "bootloader"
0x00020000-0x00200000 : "kernel"
0x00200000-0x02000000 : "file system"
MX2 NAND: 8-bit i/o mode
NAND device: Manufacturer ID: 0xec, Chip ID: 0x36 (Samsung NAND 64MiB 1,8V 8-bi)Scanning device for bad blocks
Creating 4 MTD partitions on "NAND 64MiB 1,8V 8-bit":
0x00000000-0x00080000 : "NAND bootloader"
0x00080000-0x00090000 : "NAND params"
0x00090000-0x00400000 : "NAND kernel"
0x00400000-0x04000000 : "NAND file system"
usb.c: registered new driver hub
MX2 OTG Driver ver. 1.0 built on 14:58:47 Mar 13 2007
MX2 USB HOST ver. 1.0 built on 14:58:48 Mar 13 2007
usb.c: new USB bus registered, assigned bus number 1
id pin floating - B dev
hub.c: USB hub found
hub.c: 3 ports detected
usb.c: registered new driver hid
hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
hid-core.c: USB HID support drivers
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 8192)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NetWinder Floating Point Emulator V0.95 (c) 1998-1999 Rebel.com
IrCOMM protocol (Dag Brattli)
FAT: bogus logical sector size 34276
hub.c: USB new device connect on bus1, assigned device number 2
usb.c: USB device not accepting new address=2 (error=-110)
hub.c: USB new device connect on bus1, assigned device number 3
usb.c: USB device not accepting new address=3 (error=-110)
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 84K
IveY./etc/rc.d/rc.sysinit: line 27: /bin/hostname: No such file or directory

IMX21 Console

/etc/rc.d/rc.sysinit: line 71: sysctl: command not found
/etc/rc.d/rc.sysinit: line 120: /sbin/consoletype: No such file or directory
/etc/rc.d/rc.sysinit: line 164: swapon: command not found
/etc/rc.d/rc.sysinit: line 168: hostname: command not found
/etc/rc.d/rc.sysinit: line 190: sleep: command not found
/etc/rc.d/rc.sysinit: line 229: awk: command not found
/etc/rc.d/rc.sysinit: line 234: initlog: command not found
/etc/init.d/functions: line 366: initlog: command not found
[FAILED]

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for system maintenance
(or type Control-D for normal startup):

------------------------boot up message end----------------

From here on I am able to log in and run my example applications.


Please help me...

Thanks in advance.
TN
Thanks,
TN
  • Go to the top of the page

25

Thursday, October 18th 2007, 3:45am

Hi Manju;

Have u solve the problem? I am facing the same problem.
Could u please share with me what exactly need to do to make the touch screen to work?
Thanks

Regards
thanwei
  • Go to the top of the page

Rate this thread