Hi Matze
try this code,
I think you should only output when [ev.type == 1]:
you can find the whole source code at
:http://projects.qi-hardware.com/index.php/p/fn-handle/source/tree/master/
--------------
fd = open(argv[1], O_RDONLY);
struct input_event ev;
while (1) {
read(fd, &ev, sizeof(struct input_event));
if(ev.type == 1) {
printf("key %i state %i\n", ev.code, ev.value);
switch (ev.code) {
case KEY_POWER:
system("poweroff");
break;
default:
break;
}
}
}
Matze wrote:
> Xiangfu Liu writes:
>> Hi
>> your mean you press key one time. the userspace program output more
>> then two line.(should one line for press. one line for release)
>
> Yes.
>>
>> what is your userspace program code?
>
> fd = open(device_name, O_RDONLY);
> if(fd < 0){
> fprintf(stderr,"failed to open %s: %s\n", device_name, strerror(errno));
> return 1;
> }
>
> while(1)
> {
> if(read(fd, &event, sizeof(event)) < 0)
> perror("read error");
> else
> {
> printf("Type %d Code %d Value %d \n",
> event.type, event.code, event.value);
> }
> }
>>
>> you should look into your CPU data sheet. is the GPIO init correct.
>
> I did set an internal pullup and glitch filter. To trigger the Pins I
> set them to low. In board specific setup:
> static struct gpio_keys_button wismit_button[] =
> {
> {.desc = "SW0", .gpio = GPIO_PIN_PD(6), .active_low = 1, .code = KEY_0,
> .type = EV_KEY, },
> };
>>
>> Matze wrote:
>>> Hello,
>>> I have some doubts about the gpio-keys behaviour.
>>> inside the gpio_keys_isr for every EV_KEY occured there will also a
>>> EV_SYN
>>> created. What for?
>>> I've a userspace program reading the /dev/input/event0 device in a
>>> loop and
>>> printing event, code and value to the shell. So I observe that sometimes
>>> there occur more than one EV_SYN for one EV_KEY. Where are they created?
>>> My output looks e.g. like this:
>>> Type 1 Code 11 Value 1
>>> Type 0 Code 0 Value 0
>>> Type 0 Code 0 Value 0
>>> Type 0 Code 0 Value 0
>>> Type 0 Code 0 Value 0
>>> Type 0 Code 0 Value 0
>>> Type 1 Code 11 Value 0
>>> Type 0 Code 0 Value 0
>>> Regards,
>>> Matthias
>>> --
>>> To unsubscribe from this list: send an email with
>>> "unsubscribe kernelnewbies" to [email protected]
>>> Please read the FAQ at http://kernelnewbies.org/FAQ
>>
--
Xiangfu Liu
Email: xiangfu at qi-hardware dot com
Web: http://www.qi-hardware.com
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ