Comments (7)
@ShimmyShaman Can you check this issue please?
from jetsongpio.
As long as the two channels are different channels the usage is okay. There should've been more error detail (at least to the console) for why the edge file cannot be opened (submitted pull request addresses this).
Try again with that, and at least find out why.
If not then I won't get my hands on my Jetson device for another 2-3 days to check it out.
from jetsongpio.
Yeap, right on, a file wasn't being closed when it should've been. Good error report.
Added pull request. The files get closed now and the records don't pile up in /proc/$pid/fd
from jetsongpio.
Thanks! Now it runs fine.
from jetsongpio.
Thanks for the reply. I added the std::perror() and tried again.
I got an extra message:
sysfs/edge open: Too many open files
And I checked the /proc/$pid/fd. There are hundreds of records like:
/sys/devices/2200000.gpio/gpiochip0/gpio/gpio428/value
and
/sys/devices/2200000.gpio/gpiochip0/gpio/gpio445/value
from jetsongpio.
I found it is irrelevant to multi-threading. If I run it independently on a single channel for a long time, I will get the same error.
The complete code is as below.
#include <chrono>
#include <thread>
#include <signal.h>
#include <sys/time.h>
#include <JetsonGPIO.h>
static bool end_this_program = false;
void signalHandler(int s) { end_this_program = true; }
void delay(int s) { std::this_thread::sleep_for(std::chrono::seconds(s)); }
int main()
{
signal(SIGINT, signalHandler);
int pwm_input = 11;
GPIO::setmode(GPIO::BOARD);
GPIO::setup(pwm_input, GPIO::IN);
struct timeval start, end;
int high;
while (!end_this_program)
{
printf("start to listen...\n");
GPIO::wait_for_edge(pwm_input, GPIO::Edge::RISING);
gettimeofday(&start,NULL);
GPIO::wait_for_edge(pwm_input, GPIO::Edge::FALLING);
gettimeofday(&end,NULL);
high = end.tv_usec - start.tv_usec;
printf("high voltage time: %d us\n", high);
if(high>1500 && high<=2000)
{
printf("received save flag\n");
}
}
GPIO::cleanup();
return 0;
}
from jetsongpio.
@frostcza Thank you for confirming and the error report.
@ShimmyShaman Thank you for your help.
Merged the pull request. Closed the issue.
from jetsongpio.
Related Issues (20)
- Improve PWM part of the API document
- GPIO::remove_edge_detect function: add warning for no event found HOT 1
- Update sysfs pwm dir
- Add more sample codes
- Add prerequisites info to the installation guide HOT 1
- Add pre-built binaries to release page
- How to control Rx, Tx pin on Jetson Nano? HOT 1
- orin nano run error HOT 1
- No support for PQ.02 for Jetson Orin NX
- Jetson Orin Nano: cannot find GPIO chip 2200000.gpio HOT 11
- Jetson Orin GPIO Chip cannot find Jetpack 6
- Support for Jetson Orin NX
- Support for Nano and Xavier NX HOT 2
- Error compiling with CmakeLists HOT 4
- "When importing both JetsonGPIO.h and cuda_runtime.h at the same time, a compilation error occurs." HOT 4
- Docker Image CI fails HOT 1
- Can I reboot the nano system through GPIO? HOT 1
- Adding Compat models for Jetson Orin HOT 3
- Move to gpio character device implementation HOT 1
- Divide README into multiple documents for readability
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jetsongpio.