first
This commit is contained in:
53
include_lib/system/device/iokey.h
Normal file
53
include_lib/system/device/iokey.h
Normal file
@ -0,0 +1,53 @@
|
||||
#ifndef DEVICE_IOKEY_H
|
||||
#define DEVICE_IOKEY_H
|
||||
|
||||
#include "typedef.h"
|
||||
#include "device/device.h"
|
||||
|
||||
|
||||
// enum key_connect_way {
|
||||
// ONE_PORT_TO_LOW, //按键一个端口接低电平, 另一个端口接IO
|
||||
// ONE_PORT_TO_HIGH, //按键一个端口接高电平, 另一个端口接IO
|
||||
// DOUBLE_PORT_TO_IO, //按键两个端口接IO
|
||||
// };
|
||||
|
||||
|
||||
#define ONE_PORT_TO_LOW 0 //按键一个端口接低电平, 另一个端口接IO
|
||||
#define ONE_PORT_TO_HIGH 1 //按键一个端口接高电平, 另一个端口接IO
|
||||
#define DOUBLE_PORT_TO_IO 2 //按键两个端口接IO
|
||||
#define CUST_DOUBLE_PORT_TO_IO 3
|
||||
|
||||
|
||||
struct one_io_key {
|
||||
u8 port;
|
||||
};
|
||||
|
||||
struct two_io_key {
|
||||
u8 in_port;
|
||||
u8 out_port;
|
||||
};
|
||||
|
||||
union key_type {
|
||||
struct one_io_key one_io;
|
||||
struct two_io_key two_io;
|
||||
};
|
||||
|
||||
struct iokey_port {
|
||||
union key_type key_type;
|
||||
u8 connect_way;
|
||||
u8 key_value;
|
||||
};
|
||||
|
||||
struct iokey_platform_data {
|
||||
u8 enable;
|
||||
u8 num;
|
||||
const struct iokey_port *port;
|
||||
};
|
||||
|
||||
//IOKEY API:
|
||||
extern int iokey_init(const struct iokey_platform_data *iokey_data);
|
||||
extern u8 io_get_key_value(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user