There is no USPS pickup on Monday Feb 15th, 2016 because of President's Day. USPS orders placed after 11am EST Fri February 12th will go out Tuesday February 16. UPS orders will ship as normal.

I2C LCD Issues
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/
Please be positive and constructive with your questions and comments.

I2C LCD Issues

by k1i on Sun Feb 03, 2013 4: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 4:38 pm

Re: I2C LCD Issues

by adafruit_support_bill on Mon Feb 04, 2013 7: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.

adafruit_support_bill
 
Posts: 45727
Joined: Sat Feb 07, 2009 10:11 am

Please be positive and constructive with your questions and comments.