Comments (4)
Hi Robert,
Well it helped me, but not completely. Let me explain what I did.
I have a MCP23017 (I2C) on which GPIOB6 and GPIOB7 are set as input.
On these GPIOs, there is buttons.
At the beginning the state of these buttons is unknown, so I read them in my program.
To make test I set them like this B6=false and B7=true.
On my Java program, I just made a loop that read the status of these buttons every 2 seconds.
The result is always the same :
B6=false
B7=false
But if I leave my program runing and change state of one button (B6 for example) then everything is correct.
Really weird.
So using the information you gave me, I added this to my code before the loop :
I2CBus bus = I2CFactory.getinstance(I2CBus.BUS_1);
I2CDevice device = bus.getDevice(0x21);
device.write((byte)0x09, (byte)0xFF);
Then starting with the same state B6=false and B7=true, now on I have :
1st read (time = 0 second)
B6=false
B7=false
2nd read (time = 2 seconds)
B6=false
B7=true
and continue with the correct read
So it seems the issue is to read the initial state. Have also seen that ?
And I am pretty sure this is the reason why the event I get are "corrupted"...
Thank you
Best regards
Denis
from pi4j-v1.
Hi Denis,
I actually did not make the change to the MCP23S17 GPIO provider class yet. The PiFace provider uses a different class impl and thats where I made the change. We should probably look at making the PiFace provider class extend from the MCP23S17 impl to reduce duplication of code. I would need to compare the two implementations to see exactly what are the differences -- I can't recall now why they are two separate ones to begin with :-)
from pi4j-v1.
Am using the MCP23S17 GPIO provider class, attached a couple of MCP23S17's to the PI and observed the same. The first read is wrong. Second is okay. It is consequent; happily I could live with it.
from pi4j-v1.
Added initial MCP SPI read operation to obtain initial pin state values.
from pi4j-v1.
Related Issues (20)
- Where is the PCA9685 code? HOT 3
- Published artifacts have class file version incompatible with JDK 8
- Parity bit is not sent with 1.4 on serial0 rpi4 HOT 1
- Computer Module 4 IO board Pinout issue
- PCA9685 servo question: setAlwaysOff sometimes makes the servo jump to zero position HOT 3
- Could be posible to manage Baud of 5800 on Serial0
- NoClassDefFoundError com/pi4j/io/gpio/gpiofactory HOT 5
- Not able to use spi in emteria.os
- Serial Port won't open HOT 5
- Can I use this library for other boards? HOT 2
- dependency on javax.xml.bind makes it impossible to jlink on JDK 11 HOT 3
- Question - change pinMode of GpioPinDigitalMultipurpose HOT 1
- [Question] serial control signals physical pins HOT 2
- J8 pin Different HOT 1
- PCIe x1 connector HOT 3
- Sorry, not something I can answer as the Pi4J project doesn't provide PCIE access.
- Serial buffer waits 100ms before letting me "read()" the bytes
- problem with openhab on pi4: not handling mcp23017 HOT 1
- vcgencmd is in /usr/bin on some systems - can you check this if /opt/vc.... isn't there
- Cannot run program "/opt/vc/bin/vcgencmd"
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 pi4j-v1.