Re: Need help with libgpiod gpiod_line_request_both_edges_events()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/06/2018 01:30 PM, Timur Tabi wrote:

Never mind, I figured it out.  I was passing the wrong parameter to pthread_create().  Everything works now.

Thanks for all your help.  libgpiod makes a lot more sense to me now.

So I found one small oddity.

When I start the interrupt test, the output pin is set to 1, and therefore the input pin is also set to 1 since they're wired together.

It appears that gpiod_line_event_wait() is receiving a rising-edge event when I call gpiod_line_set_value(..., 1). That is, the input is reading 1, and it is still set to 1, but I get a rising event anyway.

At one point, I told it to write a 0 to output, and I still got a rising event:

Oscillate thread started
Initial input value: 1
Setting output to 0
Received rising edge event, value=0, elapsed=-0.000204s

And it apparently went backwards in time.

What happens in this scenario:

1. gpiod_line_request_both_edges_events() is called
2. GPIO line transitions from 0 to 1
3. gpiod_line_event_wait() is called

Will gpiod_line_event_wait() return immediately, or will it wait until the next transition?

--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc.  Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux