Qt/Embedded的/蓄电池状态检测控制软件设计
(1)设备初始化,驱动设备的注册。为防止设备号的冲突,这里设备注册采用的是自动分配设备号。
devfs_handle=devfs_register(null,device_name,devfs_fl_auto_devnum,0,0,s_ifchr|s_irusr|s_iwusr,s3c2410_fops,null)。
(2)open函数,用于设置ad通道,并进行比例因子初始化。
init_waitqueue_head (adcdev.wait);
//等待队列,当数据到达的时候,进程被唤醒,并将数据返回调用者。
adcdev.channel=0;
adcdev.prescale= 0xff;
//ad设置,说明对通道0进行采样。
(3)read函数,关键函数之一,在这个函数中需要配置ad器件的控制寄存器,并启动转换。使用copy_to_user函数把数据从内核传递到用户空间,功能函数主要代码如下:
start_adc_ain(adcdev.channel, adcdev.prescale);
interruptible_sleep_on(adcdev.wait);
copy_to_user (buffer, (char*)ret, sizeof(ret))。
(4)最后,把所有功能函数写进file_operations。
表1 宿主机上的移植需要的工具及环境变量
4 总结
在各种检测系统的研究和设计中,数据采集是必不可少的环节。本系统以s3c2410a微控制器为基础,利用图形化编程语言qt设计出可视化、友好的控制界面,能够显著提高人机界面的显示效果。该系统具有较高的稳定性、可靠性,特别适用于便携式检测装置。因此,该系统具有广阔的市场前景。
评论