I'm not sure if it's ok to use this list for possible non-compiler
related problems.  I'm pretty sure this is not a compiler related
problem because the asm looks right.  If I'm in the wrong place, please
tell me and possibly steer me in the right direction.

The problem:
I'm using a multiple segment LCD and for some reason when I write a byte
w/ higher nibble bits in location 0x9D, it's causing the LCD to act like
I'm "punching" the COM line.  For instance, if I write 0x10 to 0x9D,
every segment attached to com0 lights.  Similarly, if I write 0x20 to
0x9D, all attached to com1, etc.  The lower order nibble bits work just
fine (controlling only their single segments).
Code is attached.
Very basic.. (this is pared down from actual, but still exhibits
problem).  Simply turn on LCD, clear LCD memory, set P1.0 (just so I
know it's active), then set LCD memory (0x9D) to values from 0x01 to
0x80.  Nothing weird happens when I set any of the lower nibble bits,
only values above 0x0F.  I have tried both my custom LCD and the LCD
that comes w/ the old EVK board.  If I single step with gdb I can see
that according to gdb's memory map, the LCD is still clear (all LCD
memory is still at 0x00, except 0x9D which is at whatever it should be
based on where I stopped.  This is very puzzling.

Anyone have any ideas?
Thanks
-Mark

Attachment: lcdtest.c
Description: Binary data

Reply via email to