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/
Locked
User avatar
k1i
 
Posts: 1
Joined: Sun Feb 03, 2013 4:38 pm

I2C LCD Issues

Post by k1i »

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

User avatar
adafruit_support_bill
 
Posts: 88088
Joined: Sat Feb 07, 2009 10:11 am

Re: I2C LCD Issues

Post by adafruit_support_bill »

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.

Locked
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/

Return to “Adafruit Raspberry Pi® accessories”