Hi,
I'm looking for a 4bit LCD "c" code to drive a hd47780 LCD with Launchpad.
Is there any "C" library available? I check the files section but only found
assembly code.
Any pointers would be appreciated.
Thanks.
Chetan
4bit LCD C code
Started by ●March 5, 2011
Reply by ●March 5, 20112011-03-05
You can find this ! follow this
download FreeRTOS 6.1.1. (free)
in the directory example there is a lot of C code for many board
The MBC 2300 board ( keil ) have a build in LCD 16 chars X 2 lines and you can
see a driver in C code for init, clear and write on this kind of display
With msp430, the code will be very similar, just change the IO port and timing
Bye
download FreeRTOS 6.1.1. (free)
in the directory example there is a lot of C code for many board
The MBC 2300 board ( keil ) have a build in LCD 16 chars X 2 lines and you can
see a driver in C code for init, clear and write on this kind of display
With msp430, the code will be very similar, just change the IO port and timing
Bye
Reply by ●March 6, 20112011-03-06
Hi,
I can't find the example directory in the source tree.
Did I download the correct file?
Thanks.
Chetan
\FreeRTOSV6.1.1.zip\FreeRTOSV6.1.1\Source\
include\
portable\
croutine.c
list.c
queue.c
readme.txt
tasks.c
\FreeRTOSV6.1.1\Source\portable\GCC\MSP430F449\
port.c
portmacro.h
\FreeRTOSV6.1.1\Source\include\
croutine.h
FreeRTOS.h
list.h
mpu_wrappers.h
portable.h
projdefs.h
queue.h
semphr.h
StackMacros.h
task.h
\FreeRTOSV6.1.1\Demo\msp430_GCC\
ParTest\
serial\
FreeRTOSConfig.h
gdb.ini
main.c
makefile
--- In m..., Ren wrote:
>
> You can find this ! follow this
>
> download FreeRTOS 6.1.1. (free)
> in the directory example there is a lot of C code for many board
> The MBC 2300 board ( keil ) have a build in LCD 16 chars X 2 lines and you can
> see a driver in C code for init, clear and write on this kind of display
>
> With msp430, the code will be very similar, just change the IO port and timing
> Bye
>
I can't find the example directory in the source tree.
Did I download the correct file?
Thanks.
Chetan
\FreeRTOSV6.1.1.zip\FreeRTOSV6.1.1\Source\
include\
portable\
croutine.c
list.c
queue.c
readme.txt
tasks.c
\FreeRTOSV6.1.1\Source\portable\GCC\MSP430F449\
port.c
portmacro.h
\FreeRTOSV6.1.1\Source\include\
croutine.h
FreeRTOS.h
list.h
mpu_wrappers.h
portable.h
projdefs.h
queue.h
semphr.h
StackMacros.h
task.h
\FreeRTOSV6.1.1\Demo\msp430_GCC\
ParTest\
serial\
FreeRTOSConfig.h
gdb.ini
main.c
makefile
--- In m..., Ren wrote:
>
> You can find this ! follow this
>
> download FreeRTOS 6.1.1. (free)
> in the directory example there is a lot of C code for many board
> The MBC 2300 board ( keil ) have a build in LCD 16 chars X 2 lines and you can
> see a driver in C code for init, clear and write on this kind of display
>
> With msp430, the code will be very similar, just change the IO port and timing
> Bye
>
Reply by ●March 6, 20112011-03-06
SUlSQyB0aGUgZXhhbXBsZSBjb2RlIGlzIGEgc2VwZXJhdGUgemlwIGZpbGUuIEJ1dCBpdHMg
YmVlbiBhZ2VzIHNpbmNlIEkgZG93bmxvYWRlZCBpdC4KCmNiaGFyZ2F2YSA8Y2JoYXJnYXZh
QHlhaG9vLmNvbT4gd3JvdGU6Cgo+SGksCj4KPkkgY2FuJ3QgZmluZCB0aGUgZXhhbXBsZSBk
aXJlY3RvcnkgaW4gdGhlIHNvdXJjZSB0cmVlLgo+RGlkIEkgZG93bmxvYWQgdGhlIGNvcnJl
Y3QgZmlsZT8KPgo+VGhhbmtzLgo+Cj5DaGV0YW4KPgo+Cj5cRnJlZVJUT1NWNi4xLjEuemlw
XEZyZWVSVE9TVjYuMS4xXFNvdXJjZVwKPmluY2x1ZGVcCj5wb3J0YWJsZVwKPmNyb3V0aW5l
LmMKPmxpc3QuYwo+cXVldWUuYwo+cmVhZG1lLnR4dAo+dGFza3MuYwo+Cj4KPlxGcmVlUlRP
U1Y2LjEuMVxTb3VyY2VccG9ydGFibGVcR0NDXE1TUDQzMEY0NDlcCj5wb3J0LmMKPnBvcnRt
YWNyby5oCj4KPlxGcmVlUlRPU1Y2LjEuMVxTb3VyY2VcaW5jbHVkZVwKPmNyb3V0aW5lLmgK
PkZyZWVSVE9TLmgKPmxpc3QuaAo+bXB1X3dyYXBwZXJzLmgKPnBvcnRhYmxlLmgKPnByb2pk
ZWZzLmgKPnF1ZXVlLmgKPnNlbXBoci5oCj5TdGFja01hY3Jvcy5oCj50YXNrLmgKPgo+XEZy
ZWVSVE9TVjYuMS4xXERlbW9cbXNwNDMwX0dDQ1wKPlBhclRlc3RcCj5zZXJpYWxcCj5GcmVl
UlRPU0NvbmZpZy5oCj5nZGIuaW5pCj5tYWluLmMKPm1ha2VmaWxlCj4KPgo+Cj4tLS0gSW4g
bXNwNDMwQHlhaG9vZ3JvdXBzLmNvbSwgUmVuw6kgPHJlbmUubGVmZWJ2cmVALi4uPiB3cm90
ZToKPj4KPj4gWW91IGNhbiBmaW5kIHRoaXMgISBmb2xsb3cgdGhpcwo+PiAKPj4gZG93bmxv
YWQgRnJlZVJUT1MgNi4xLjEuICAoZnJlZSkKPj4gaW4gdGhlIGRpcmVjdG9yeSBleGFtcGxl
ICB0aGVyZSBpcyBhIGxvdCBvZiBDIGNvZGUgZm9yIG1hbnkgYm9hcmQKPj4gVGhlIE1CQyAy
MzAwIGJvYXJkICgga2VpbCApICBoYXZlIGEgYnVpbGQgaW4gTENEIDE2IGNoYXJzICBYIDIg
bGluZXMgYW5kIHlvdSBjYW4KPj4gc2VlIGEgZHJpdmVyIGluIEMgY29kZSBmb3IgaW5pdCwg
Y2xlYXIgYW5kIHdyaXRlIG9uIHRoaXMga2luZCBvZiBkaXNwbGF5Cj4+IAo+PiBXaXRoIG1z
cDQzMCwgdGhlIGNvZGUgd2lsbCBiZSB2ZXJ5IHNpbWlsYXIsIGp1c3QgY2hhbmdlIHRoZSBJ
TyBwb3J0IGFuZCB0aW1pbmcKPj4gQnllCj4+Cj4KPgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoKVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGUgbXNwNDMwIGdyb3Vw
LCBzZW5kIGFuIGVtYWlsIHRvOgptc3A0MzAtdW5zdWJzY3JpYmVAZWdyb3Vwcy5jb20KCllh
aG9vISBHcm91cHMgTGlua3MKCjwqPiBUbyB2aXNpdCB5b3VyIGdyb3VwIG9uIHRoZSB3ZWIs
IGdvIHRvOgogICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvbXNwNDMwLwoKPCo+
IFlvdXIgZW1haWwgc2V0dGluZ3M6CiAgICBJbmRpdmlkdWFsIEVtYWlsIHwgVHJhZGl0aW9u
YWwKCjwqPiBUbyBjaGFuZ2Ugc2V0dGluZ3Mgb25saW5lIGdvIHRvOgogICAgaHR0cDovL2dy
b3Vwcy55YWhvby5jb20vZ3JvdXAvbXNwNDMwL2pvaW4KICAgIChZYWhvbyEgSUQgcmVxdWly
ZWQpCgo8Kj4gVG8gY2hhbmdlIHNldHRpbmdzIHZpYSBlbWFpbDoKICAgIG1zcDQzMC1kaWdl
c3RAeWFob29ncm91cHMuY29tIAogICAgbXNwNDMwLWZ1bGxmZWF0dXJlZEB5YWhvb2dyb3Vw
cy5jb20KCjwqPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAsIHNlbmQgYW4gZW1h
aWwgdG86CiAgICBtc3A0MzAtdW5zdWJzY3JpYmVAeWFob29ncm91cHMuY29tCgo8Kj4gWW91
ciB1c2Ugb2YgWWFob28hIEdyb3VwcyBpcyBzdWJqZWN0IHRvOgogICAgaHR0cDovL2RvY3Mu
eWFob28uY29tL2luZm8vdGVybXMvCgo
YmVlbiBhZ2VzIHNpbmNlIEkgZG93bmxvYWRlZCBpdC4KCmNiaGFyZ2F2YSA8Y2JoYXJnYXZh
QHlhaG9vLmNvbT4gd3JvdGU6Cgo+SGksCj4KPkkgY2FuJ3QgZmluZCB0aGUgZXhhbXBsZSBk
aXJlY3RvcnkgaW4gdGhlIHNvdXJjZSB0cmVlLgo+RGlkIEkgZG93bmxvYWQgdGhlIGNvcnJl
Y3QgZmlsZT8KPgo+VGhhbmtzLgo+Cj5DaGV0YW4KPgo+Cj5cRnJlZVJUT1NWNi4xLjEuemlw
XEZyZWVSVE9TVjYuMS4xXFNvdXJjZVwKPmluY2x1ZGVcCj5wb3J0YWJsZVwKPmNyb3V0aW5l
LmMKPmxpc3QuYwo+cXVldWUuYwo+cmVhZG1lLnR4dAo+dGFza3MuYwo+Cj4KPlxGcmVlUlRP
U1Y2LjEuMVxTb3VyY2VccG9ydGFibGVcR0NDXE1TUDQzMEY0NDlcCj5wb3J0LmMKPnBvcnRt
YWNyby5oCj4KPlxGcmVlUlRPU1Y2LjEuMVxTb3VyY2VcaW5jbHVkZVwKPmNyb3V0aW5lLmgK
PkZyZWVSVE9TLmgKPmxpc3QuaAo+bXB1X3dyYXBwZXJzLmgKPnBvcnRhYmxlLmgKPnByb2pk
ZWZzLmgKPnF1ZXVlLmgKPnNlbXBoci5oCj5TdGFja01hY3Jvcy5oCj50YXNrLmgKPgo+XEZy
ZWVSVE9TVjYuMS4xXERlbW9cbXNwNDMwX0dDQ1wKPlBhclRlc3RcCj5zZXJpYWxcCj5GcmVl
UlRPU0NvbmZpZy5oCj5nZGIuaW5pCj5tYWluLmMKPm1ha2VmaWxlCj4KPgo+Cj4tLS0gSW4g
bXNwNDMwQHlhaG9vZ3JvdXBzLmNvbSwgUmVuw6kgPHJlbmUubGVmZWJ2cmVALi4uPiB3cm90
ZToKPj4KPj4gWW91IGNhbiBmaW5kIHRoaXMgISBmb2xsb3cgdGhpcwo+PiAKPj4gZG93bmxv
YWQgRnJlZVJUT1MgNi4xLjEuICAoZnJlZSkKPj4gaW4gdGhlIGRpcmVjdG9yeSBleGFtcGxl
ICB0aGVyZSBpcyBhIGxvdCBvZiBDIGNvZGUgZm9yIG1hbnkgYm9hcmQKPj4gVGhlIE1CQyAy
MzAwIGJvYXJkICgga2VpbCApICBoYXZlIGEgYnVpbGQgaW4gTENEIDE2IGNoYXJzICBYIDIg
bGluZXMgYW5kIHlvdSBjYW4KPj4gc2VlIGEgZHJpdmVyIGluIEMgY29kZSBmb3IgaW5pdCwg
Y2xlYXIgYW5kIHdyaXRlIG9uIHRoaXMga2luZCBvZiBkaXNwbGF5Cj4+IAo+PiBXaXRoIG1z
cDQzMCwgdGhlIGNvZGUgd2lsbCBiZSB2ZXJ5IHNpbWlsYXIsIGp1c3QgY2hhbmdlIHRoZSBJ
TyBwb3J0IGFuZCB0aW1pbmcKPj4gQnllCj4+Cj4KPgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQoKVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGUgbXNwNDMwIGdyb3Vw
LCBzZW5kIGFuIGVtYWlsIHRvOgptc3A0MzAtdW5zdWJzY3JpYmVAZWdyb3Vwcy5jb20KCllh
aG9vISBHcm91cHMgTGlua3MKCjwqPiBUbyB2aXNpdCB5b3VyIGdyb3VwIG9uIHRoZSB3ZWIs
IGdvIHRvOgogICAgaHR0cDovL2dyb3Vwcy55YWhvby5jb20vZ3JvdXAvbXNwNDMwLwoKPCo+
IFlvdXIgZW1haWwgc2V0dGluZ3M6CiAgICBJbmRpdmlkdWFsIEVtYWlsIHwgVHJhZGl0aW9u
YWwKCjwqPiBUbyBjaGFuZ2Ugc2V0dGluZ3Mgb25saW5lIGdvIHRvOgogICAgaHR0cDovL2dy
b3Vwcy55YWhvby5jb20vZ3JvdXAvbXNwNDMwL2pvaW4KICAgIChZYWhvbyEgSUQgcmVxdWly
ZWQpCgo8Kj4gVG8gY2hhbmdlIHNldHRpbmdzIHZpYSBlbWFpbDoKICAgIG1zcDQzMC1kaWdl
c3RAeWFob29ncm91cHMuY29tIAogICAgbXNwNDMwLWZ1bGxmZWF0dXJlZEB5YWhvb2dyb3Vw
cy5jb20KCjwqPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgZ3JvdXAsIHNlbmQgYW4gZW1h
aWwgdG86CiAgICBtc3A0MzAtdW5zdWJzY3JpYmVAeWFob29ncm91cHMuY29tCgo8Kj4gWW91
ciB1c2Ugb2YgWWFob28hIEdyb3VwcyBpcyBzdWJqZWN0IHRvOgogICAgaHR0cDovL2RvY3Mu
eWFob28uY29tL2luZm8vdGVybXMvCgo
Reply by ●March 6, 20112011-03-06
cbhargava wrote:
> Hi,
>
> I can't find the example directory in the source tree.
> Did I download the correct file?
>
>
Ok, Best, Dan.
(With a pcf8574 it just takes two pins, and those pins can do a whole
lot more too. This was from an old 149 project, I wasn't worried about
eating pins or CPU time.)
Tested, works fine, you should be able to work out extra commands from
the data sheet:
~~~
#define LCD_MODE_BIT 0x02
#define LCD_R_W_BIT 0x04
#define LCD_ENABLE_BIT 0x08
#define LCD_BF_FLAG 0x10
#define LCD_CMD_MASK 0x0e
#define LCD_DATA_MASK 0xf0
#define LCD_PORT_OUT P4OUT
#define LCD_PORT_DIR P4DIR
void putchar( uint16_t in )
{
LCD_PORT_OUT= ( in & 0xf0 ) | LCD_MODE_BIT;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//
LCD_PORT_OUT= ( ( in << 4 ) & 0xf0 ) | LCD_MODE_BIT;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT= 0;
brief_pause( 200 );
}
void lcd_command( uint16_t cmd )
{
LCD_PORT_OUT= ( cmd & 0xf0 );
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//
LCD_PORT_OUT= ( ( cmd << 4 ) & 0xf0 );
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT= 0;
brief_pause( 3000 );
}
void lcd_init( )
{
//lcd
LCD_PORT_OUT= 0;
LCD_PORT_DIR|= LCD_DATA_MASK | LCD_CMD_MASK;
//assume VCC+ > 20ms away
//first init
LCD_PORT_OUT= 0x30;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//pause should be set by mclk div, > 4.1ms
brief_pause( 15000 );
//second init
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//pause should be set by mclk div, > 100us
brief_pause( 500 );
//four bit mode
LCD_PORT_OUT= 0x20;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
brief_pause( 1000 );
//from here 'lcd_command can be used
//operational mode 5x8 1/16 duty( two lines )
lcd_command( 0x28 );
brief_pause( 1000 );
//display off
lcd_command( 0x08 );
brief_pause( 1000 );
//display on, no cursor, no blink...
lcd_command( 0x0c );
brief_pause( 1000 );
LCD_PORT_OUT= 0;
}
> Hi,
>
> I can't find the example directory in the source tree.
> Did I download the correct file?
>
>
Ok, Best, Dan.
(With a pcf8574 it just takes two pins, and those pins can do a whole
lot more too. This was from an old 149 project, I wasn't worried about
eating pins or CPU time.)
Tested, works fine, you should be able to work out extra commands from
the data sheet:
~~~
#define LCD_MODE_BIT 0x02
#define LCD_R_W_BIT 0x04
#define LCD_ENABLE_BIT 0x08
#define LCD_BF_FLAG 0x10
#define LCD_CMD_MASK 0x0e
#define LCD_DATA_MASK 0xf0
#define LCD_PORT_OUT P4OUT
#define LCD_PORT_DIR P4DIR
void putchar( uint16_t in )
{
LCD_PORT_OUT= ( in & 0xf0 ) | LCD_MODE_BIT;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//
LCD_PORT_OUT= ( ( in << 4 ) & 0xf0 ) | LCD_MODE_BIT;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT= 0;
brief_pause( 200 );
}
void lcd_command( uint16_t cmd )
{
LCD_PORT_OUT= ( cmd & 0xf0 );
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//
LCD_PORT_OUT= ( ( cmd << 4 ) & 0xf0 );
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT= 0;
brief_pause( 3000 );
}
void lcd_init( )
{
//lcd
LCD_PORT_OUT= 0;
LCD_PORT_DIR|= LCD_DATA_MASK | LCD_CMD_MASK;
//assume VCC+ > 20ms away
//first init
LCD_PORT_OUT= 0x30;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//pause should be set by mclk div, > 4.1ms
brief_pause( 15000 );
//second init
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
//pause should be set by mclk div, > 100us
brief_pause( 500 );
//four bit mode
LCD_PORT_OUT= 0x20;
LCD_PORT_OUT|= LCD_ENABLE_BIT;
nop( );
LCD_PORT_OUT&= ~LCD_ENABLE_BIT;
brief_pause( 1000 );
//from here 'lcd_command can be used
//operational mode 5x8 1/16 duty( two lines )
lcd_command( 0x28 );
brief_pause( 1000 );
//display off
lcd_command( 0x08 );
brief_pause( 1000 );
//display on, no cursor, no blink...
lcd_command( 0x0c );
brief_pause( 1000 );
LCD_PORT_OUT= 0;
}
Reply by ●March 6, 20112011-03-06
CgpNYXJrIEV2ZXJldHQgPG1hcmN1c3dheW51c0B5YWhvby5jb20+IHdyb3RlOgoKPklJUkMg
dGhlIGV4YW1wbGUgY29kZSBpcyBhIHNlcGVyYXRlIHppcCBmaWxlLiBCdXQgaXRzIGJlZW4g
YWdlcyBzaW5jZSBJIGRvd25sb2FkZWQgaXQuCj4KPmNiaGFyZ2F2YSA8Y2JoYXJnYXZhQHlh
aG9vLmNvbT4gd3JvdGU6Cj4KPj5IaSwKPj4KPj5JIGNhbid0IGZpbmQgdGhlIGV4YW1wbGUg
ZGlyZWN0b3J5IGluIHRoZSBzb3VyY2UgdHJlZS4KPj5EaWQgSSBkb3dubG9hZCB0aGUgY29y
cmVjdCBmaWxlPwo+Pgo+PlRoYW5rcy4KPj4KPj5DaGV0YW4KPj4KPj4KPj5cRnJlZVJUT1NW
Ni4xLjEuemlwXEZyZWVSVE9TVjYuMS4xXFNvdXJjZVwKPj5pbmNsdWRlXAo+PnBvcnRhYmxl
XAo+PmNyb3V0aW5lLmMKPj5saXN0LmMKPj5xdWV1ZS5jCj4+cmVhZG1lLnR4dAo+PnRhc2tz
LmMKPj4KPj4KPj5cRnJlZVJUT1NWNi4xLjFcU291cmNlXHBvcnRhYmxlXEdDQ1xNU1A0MzBG
NDQ5XAo+PnBvcnQuYwo+PnBvcnRtYWNyby5oCj4+Cj4+XEZyZWVSVE9TVjYuMS4xXFNvdXJj
ZVxpbmNsdWRlXAo+PmNyb3V0aW5lLmgKPj5GcmVlUlRPUy5oCj4+bGlzdC5oCj4+bXB1X3dy
YXBwZXJzLmgKPj5wb3J0YWJsZS5oCj4+cHJvamRlZnMuaAo+PnF1ZXVlLmgKPj5zZW1waHIu
aAo+PlN0YWNrTWFjcm9zLmgKPj50YXNrLmgKPj4KPj5cRnJlZVJUT1NWNi4xLjFcRGVtb1xt
c3A0MzBfR0NDXAo+PlBhclRlc3RcCj4+c2VyaWFsXAo+PkZyZWVSVE9TQ29uZmlnLmgKPj5n
ZGIuaW5pCj4+bWFpbi5jCj4+bWFrZWZpbGUKPj4KPj4KPj4KPj4tLS0gSW4gbXNwNDMwQHlh
aG9vZ3JvdXBzLmNvbSwgUmVuw6kgPHJlbmUubGVmZWJ2cmVALi4uPiB3cm90ZToKPj4+Cj4+
PiBZb3UgY2FuIGZpbmQgdGhpcyAhIGZvbGxvdyB0aGlzCj4+PiAKPj4+IGRvd25sb2FkIEZy
ZWVSVE9TIDYuMS4xLiAgKGZyZWUpCj4+PiBpbiB0aGUgZGlyZWN0b3J5IGV4YW1wbGUgIHRo
ZXJlIGlzIGEgbG90IG9mIEMgY29kZSBmb3IgbWFueSBib2FyZAo+Pj4gVGhlIE1CQyAyMzAw
IGJvYXJkICgga2VpbCApICBoYXZlIGEgYnVpbGQgaW4gTENEIDE2IGNoYXJzICBYIDIgbGlu
ZXMgYW5kIHlvdSBjYW4KPj4+IHNlZSBhIGRyaXZlciBpbiBDIGNvZGUgZm9yIGluaXQsIGNs
ZWFyIGFuZCB3cml0ZSBvbiB0aGlzIGtpbmQgb2YgZGlzcGxheQo+Pj4gCj4+PiBXaXRoIG1z
cDQzMCwgdGhlIGNvZGUgd2lsbCBiZSB2ZXJ5IHNpbWlsYXIsIGp1c3QgY2hhbmdlIHRoZSBJ
TyBwb3J0IGFuZCB0aW1pbmcKPj4+IEJ5ZQo+Pj4KPj4KPj4KCgotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KClRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIG1zcDQzMCBn
cm91cCwgc2VuZCBhbiBlbWFpbCB0bzoKbXNwNDMwLXVuc3Vic2NyaWJlQGVncm91cHMuY29t
CgpZYWhvbyEgR3JvdXBzIExpbmtzCgo8Kj4gVG8gdmlzaXQgeW91ciBncm91cCBvbiB0aGUg
d2ViLCBnbyB0bzoKICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL21zcDQzMC8K
CjwqPiBZb3VyIGVtYWlsIHNldHRpbmdzOgogICAgSW5kaXZpZHVhbCBFbWFpbCB8IFRyYWRp
dGlvbmFsCgo8Kj4gVG8gY2hhbmdlIHNldHRpbmdzIG9ubGluZSBnbyB0bzoKICAgIGh0dHA6
Ly9ncm91cHMueWFob28uY29tL2dyb3VwL21zcDQzMC9qb2luCiAgICAoWWFob28hIElEIHJl
cXVpcmVkKQoKPCo+IFRvIGNoYW5nZSBzZXR0aW5ncyB2aWEgZW1haWw6CiAgICBtc3A0MzAt
ZGlnZXN0QHlhaG9vZ3JvdXBzLmNvbSAKICAgIG1zcDQzMC1mdWxsZmVhdHVyZWRAeWFob29n
cm91cHMuY29tCgo8Kj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGdyb3VwLCBzZW5kIGFu
IGVtYWlsIHRvOgogICAgbXNwNDMwLXVuc3Vic2NyaWJlQHlhaG9vZ3JvdXBzLmNvbQoKPCo+
IFlvdXIgdXNlIG9mIFlhaG9vISBHcm91cHMgaXMgc3ViamVjdCB0bzoKICAgIGh0dHA6Ly9k
b2NzLnlhaG9vLmNvbS9pbmZvL3Rlcm1zLwoK
dGhlIGV4YW1wbGUgY29kZSBpcyBhIHNlcGVyYXRlIHppcCBmaWxlLiBCdXQgaXRzIGJlZW4g
YWdlcyBzaW5jZSBJIGRvd25sb2FkZWQgaXQuCj4KPmNiaGFyZ2F2YSA8Y2JoYXJnYXZhQHlh
aG9vLmNvbT4gd3JvdGU6Cj4KPj5IaSwKPj4KPj5JIGNhbid0IGZpbmQgdGhlIGV4YW1wbGUg
ZGlyZWN0b3J5IGluIHRoZSBzb3VyY2UgdHJlZS4KPj5EaWQgSSBkb3dubG9hZCB0aGUgY29y
cmVjdCBmaWxlPwo+Pgo+PlRoYW5rcy4KPj4KPj5DaGV0YW4KPj4KPj4KPj5cRnJlZVJUT1NW
Ni4xLjEuemlwXEZyZWVSVE9TVjYuMS4xXFNvdXJjZVwKPj5pbmNsdWRlXAo+PnBvcnRhYmxl
XAo+PmNyb3V0aW5lLmMKPj5saXN0LmMKPj5xdWV1ZS5jCj4+cmVhZG1lLnR4dAo+PnRhc2tz
LmMKPj4KPj4KPj5cRnJlZVJUT1NWNi4xLjFcU291cmNlXHBvcnRhYmxlXEdDQ1xNU1A0MzBG
NDQ5XAo+PnBvcnQuYwo+PnBvcnRtYWNyby5oCj4+Cj4+XEZyZWVSVE9TVjYuMS4xXFNvdXJj
ZVxpbmNsdWRlXAo+PmNyb3V0aW5lLmgKPj5GcmVlUlRPUy5oCj4+bGlzdC5oCj4+bXB1X3dy
YXBwZXJzLmgKPj5wb3J0YWJsZS5oCj4+cHJvamRlZnMuaAo+PnF1ZXVlLmgKPj5zZW1waHIu
aAo+PlN0YWNrTWFjcm9zLmgKPj50YXNrLmgKPj4KPj5cRnJlZVJUT1NWNi4xLjFcRGVtb1xt
c3A0MzBfR0NDXAo+PlBhclRlc3RcCj4+c2VyaWFsXAo+PkZyZWVSVE9TQ29uZmlnLmgKPj5n
ZGIuaW5pCj4+bWFpbi5jCj4+bWFrZWZpbGUKPj4KPj4KPj4KPj4tLS0gSW4gbXNwNDMwQHlh
aG9vZ3JvdXBzLmNvbSwgUmVuw6kgPHJlbmUubGVmZWJ2cmVALi4uPiB3cm90ZToKPj4+Cj4+
PiBZb3UgY2FuIGZpbmQgdGhpcyAhIGZvbGxvdyB0aGlzCj4+PiAKPj4+IGRvd25sb2FkIEZy
ZWVSVE9TIDYuMS4xLiAgKGZyZWUpCj4+PiBpbiB0aGUgZGlyZWN0b3J5IGV4YW1wbGUgIHRo
ZXJlIGlzIGEgbG90IG9mIEMgY29kZSBmb3IgbWFueSBib2FyZAo+Pj4gVGhlIE1CQyAyMzAw
IGJvYXJkICgga2VpbCApICBoYXZlIGEgYnVpbGQgaW4gTENEIDE2IGNoYXJzICBYIDIgbGlu
ZXMgYW5kIHlvdSBjYW4KPj4+IHNlZSBhIGRyaXZlciBpbiBDIGNvZGUgZm9yIGluaXQsIGNs
ZWFyIGFuZCB3cml0ZSBvbiB0aGlzIGtpbmQgb2YgZGlzcGxheQo+Pj4gCj4+PiBXaXRoIG1z
cDQzMCwgdGhlIGNvZGUgd2lsbCBiZSB2ZXJ5IHNpbWlsYXIsIGp1c3QgY2hhbmdlIHRoZSBJ
TyBwb3J0IGFuZCB0aW1pbmcKPj4+IEJ5ZQo+Pj4KPj4KPj4KCgotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KClRvIHVuc3Vic2NyaWJlIGZyb20gdGhlIG1zcDQzMCBn
cm91cCwgc2VuZCBhbiBlbWFpbCB0bzoKbXNwNDMwLXVuc3Vic2NyaWJlQGVncm91cHMuY29t
CgpZYWhvbyEgR3JvdXBzIExpbmtzCgo8Kj4gVG8gdmlzaXQgeW91ciBncm91cCBvbiB0aGUg
d2ViLCBnbyB0bzoKICAgIGh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL21zcDQzMC8K
CjwqPiBZb3VyIGVtYWlsIHNldHRpbmdzOgogICAgSW5kaXZpZHVhbCBFbWFpbCB8IFRyYWRp
dGlvbmFsCgo8Kj4gVG8gY2hhbmdlIHNldHRpbmdzIG9ubGluZSBnbyB0bzoKICAgIGh0dHA6
Ly9ncm91cHMueWFob28uY29tL2dyb3VwL21zcDQzMC9qb2luCiAgICAoWWFob28hIElEIHJl
cXVpcmVkKQoKPCo+IFRvIGNoYW5nZSBzZXR0aW5ncyB2aWEgZW1haWw6CiAgICBtc3A0MzAt
ZGlnZXN0QHlhaG9vZ3JvdXBzLmNvbSAKICAgIG1zcDQzMC1mdWxsZmVhdHVyZWRAeWFob29n
cm91cHMuY29tCgo8Kj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGdyb3VwLCBzZW5kIGFu
IGVtYWlsIHRvOgogICAgbXNwNDMwLXVuc3Vic2NyaWJlQHlhaG9vZ3JvdXBzLmNvbQoKPCo+
IFlvdXIgdXNlIG9mIFlhaG9vISBHcm91cHMgaXMgc3ViamVjdCB0bzoKICAgIGh0dHA6Ly9k
b2NzLnlhaG9vLmNvbS9pbmZvL3Rlcm1zLwoK
Reply by ●March 6, 20112011-03-06
Thanks Dan,
That was helpful. I will try to enhance it. I already compiled your code with mspgcc4 after a few modifications.
Thanks.
Chetan Bhargava
--- In m..., Dan Bloomquist wrote:
>
> Ok, Best, Dan.
>
> (With a pcf8574 it just takes two pins, and those pins can do a whole
> lot more too. This was from an old 149 project, I wasn't worried about
> eating pins or CPU time.)
>
> Tested, works fine, you should be able to work out extra commands from
> the data sheet:
That was helpful. I will try to enhance it. I already compiled your code with mspgcc4 after a few modifications.
Thanks.
Chetan Bhargava
--- In m..., Dan Bloomquist wrote:
>
> Ok, Best, Dan.
>
> (With a pcf8574 it just takes two pins, and those pins can do a whole
> lot more too. This was from an old 149 project, I wasn't worried about
> eating pins or CPU time.)
>
> Tested, works fine, you should be able to work out extra commands from
> the data sheet:
Reply by ●March 6, 20112011-03-06
Sorry, I forgot tell you this:
the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
you must download freeRTOS for this processeur
Bye
the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
you must download freeRTOS for this processeur
Bye
Reply by ●March 6, 20112011-03-06
Thanks,
I'll take a look.
--- In m..., Ren wrote:
>
> Sorry, I forgot tell you this:
> the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
>
> you must download freeRTOS for this processeur
>
> Bye
>
I'll take a look.
--- In m..., Ren wrote:
>
> Sorry, I forgot tell you this:
> the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
>
> you must download freeRTOS for this processeur
>
> Bye
>
Reply by ●March 7, 20112011-03-07
Some time ago I wrote a library for 8051. I might as well port it.
Thanks.
--- In m..., "cbhargava" wrote:
>
> Thanks,
>
> I'll take a look.
>
>
>
> --- In m..., Ren wrote:
> >
> > Sorry, I forgot tell you this:
> > the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
> >
> > you must download freeRTOS for this processeur
> >
> > Bye
>
Thanks.
--- In m..., "cbhargava" wrote:
>
> Thanks,
>
> I'll take a look.
>
>
>
> --- In m..., Ren wrote:
> >
> > Sorry, I forgot tell you this:
> > the LCD code is in the IAR( or keil) LPC23XX ( ARM7)
> >
> > you must download freeRTOS for this processeur
> >
> > Bye
>