Android 驱动之 jogball 详解
2010-03-17 16:15:00 来源:WEB开发网两侧面会出现横向电位差。半导体中的霍尔效应比金属箔片中更为明 显,而铁磁金属在居里温度以下将呈现极强的霍尔效应。
所以jogball是旋转磁轴引起磁场的变幻,来产生高低电压的。从而根据机械特性就不难理解jogball的数字输入过程。
3.3 Jogball的原理图
其实jogball只是机械结构,原理图是hall ic的,有兴趣的人在这里下载
4 数据结构
struct hero_axis_info {
struct gpio_event_axis_info info; /*gpio_event_axis结构的信息*/
uint16_t in_state;/*记录输入的高低电平信号*/
uint16_t out_state;/*记录输出的高低电平信号*/
uint16_t temp_state;/*临时存储高低电平*/
uint16_t threshold;/*门限值,超过这个值上报给input子系统*/
};
struct gpio_event_axis_info {
/* initialize to gpio_event_axis_func */
struct gpio_event_info info; /*gpio_event信息*/
uint8_t count; /*gpio的数量*/
uint8_t type; /* EV_REL or EV_ABS */
uint16_t code; /*输入键值类型*/
uint16_t decoded_size; /*gpio 数组的大小*/
uint16_t (*map)(struct gpio_event_axis_info *info, uint16_t in); /*解析回调函数*/
uint32_t *gpio; /*gpio端口数组*/
uint32_t flags; /*调试标值*/
uint32_t enable_emc_protect_delay; /*保护间隔时间*/
uint16_t emc_gpio_state; /* 延时中用到gpio_state*/
atomic_t emc_disable_irqnum;/*延时中用到的屏蔽的中断号*/
};
struct gpio_event_info {
int (*func)(struct input_dev *input_dev,
struct gpio_event_info *info,
void **data, int func);
/*给gpio_event子系统中实现注册到内核中的回调函数*/
int (*event)(struct input_dev *input_dev,
struct gpio_event_info *info,
void **data, unsigned int type,
unsigned int code, int value); /* out events */
};
struct gpio_event_platform_data {
const char *name;/*名字*/
更多精彩
赞助商链接