I2C LCD Issues

Talk about Adafruit Raspberry Pi® accessories!

Moderators: adafruit_support_bill, adafruit

Forum rules
Talk about Adafruit Raspberry Pi® accessories! Please do not ask for Linux support, this is for Adafruit products only! For Raspberry Pi help please visit: http://www.raspberrypi.org/phpBB3/

I2C LCD Issues

Postby k1i » Sun Feb 03, 2013 3:40 pm

I purchased the negative LCD + I2C board kit from Adafruit, and had some general questions about the operation of the I2C bus and the MCP23017.

The LCD works perfectly, the buttons work well, but, I run into an issue when I use multithreading to read button state and write to the LCD at the same time.

Is anyone else doing this successfully? When I have button states being checked in their own thread and make write ops (message, backlight, clear, etc), the screen fills with gibberish and the LCD becomes non-responsive until I re-initialize it.

Is there some kind of a trick to enable I2C transactions? Is there no way to have multiple threading with this? Do I need a queue?

All help is appreciated
K
k1i
 
Posts: 1
Joined: Sun Feb 03, 2013 3:38 pm

Re: I2C LCD Issues

Postby adafruit_support_bill » Mon Feb 04, 2013 6:05 am

i2c is a serial interface. If you have multiple threads talking to it, the commands will get interleaved and the results are scrambled. There are many strategies for dealing with device I/O in a multi-threaded system. If you already have the code written, the simplest thing would be to add a mutex to gate access to the device.
User avatar
adafruit_support_bill
 
Posts: 15885
Joined: Sat Feb 07, 2009 9:11 am


Return to Adafruit Raspberry Pi® accessories

Who is online

Users browsing this forum: mibignistinly and 1 guest

Stuff to buy from the Adafruit store and links to product documentation!


New Products [105]

Raspberry Pi[80]
 
FLORA[23]
 
Bunnie Studios[9]
 
FPGA[1]
 
mbed[11]
Arduino[60]
 
NETduino[14]
 
BeagleBone[24]
 
Android[6]
 
XBee[10]
More Dev Boards[30]


 
BoArduino[8]
 
SpokePOV[4]
 
TV-B-Gone[4]
 
MiniPOV[3]
 
SIM reader[3]
 
Microtouch[5]
 
Clocks & Watches[18]
 
Drawdio[4]
 
Brain Machine[1]
 
Game of Life[2]
 
MintyBoost[2]
More DIY Kits[16]


 
MaKey MaKey[3]
 
Tweet-a-Watt[5]
 
Young Engineers[33]
 
Discover Electronics[2]
 
Snap Circuits[4]
 
littleBits[3]
 
Project packs[8]


 
Breakout Boards[33]
LCDs & Displays[48]
Components & Parts[69]
Batteries & Power[49]
EL Wire/Tape/Panel[52]
LEDs[108]
 
Wireless[14]
Cables[60]
 
Lasers[6]
Sensors/Parts[145]
 
Enclosures/Cases[11]
 
Solar[11]
 
RFID / NFC[13]
Prototyping[69]
 
iDevices[13]
Tools[71]
 
Wearables[39]
 
CNC[37]
 
Robotics[29]
 
3D printing[1]
 
Materials[24]


 
Stickers[41]
 
Skill badges[55]
 
Books[25]
 
Circuit Playground[7]
 
Gift Certificates[4]