Pages: [1]   Go Down
Author Topic: string library ?  (Read 1806 times)
0 Members and 1 Guest are viewing this topic.
Britanny
Offline Offline
Full Member
***
Karma: 0
Posts: 233
Mais vrai, j'ai trop pleuré, toute lune est atroce
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well i want to make a small text generator with an arduibo board and lcd display but i discovered that there no implementation of evolved "string" instruction, like "split" or "substr" or string array in arduino langage (same thing in processing or wiring)
is there a way to add this functions in arduino or is it to heavy for the poor board memory ?
perhaps the team work on it ?

my knowledge in C are null:P

The only way i've found is to work with Flash and transmit letter by letter to arduino via serproxy... but it's not really what i wanted...
i dream of a standalone board :-/

any idea ?

regards
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 134
panta rei resist the resistors!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

that's a good question...
I've also wondered what can be brought to Arduino from C
how to integrate libraries we find around or have available...
and that gets us to a way bigger question which is...what is the exact structure of Arduino (software)
...
but I will post a full thread on that.

for example this guy here http://www.e-dsp.com/how-to-use-a-lcd-with-your-electronic-devices/ has some routines for the atmega16 (not that far from the atmega8 smiley-wink )
to easily connect an LCD... I know that the processor is different but how can we integrate that code (or a subset) into Arduino? how do you extend arduino...besides adding code directly in you project file.

anyhow, I had problems with strings as well,
I needed to be able to pass full strings back and forth from flash
you can check http://www.progetto25zero1.com/b/tools/Arduino for some code I've wrote that you might find usefull.
It passes "strings" all in one time (actually sending them char by char but it's completely invisible to you)

hope it helps
b.

« Last Edit: February 20, 2006, 08:09:05 pm by beltran » Logged

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK hold your horses smiley

usually string manipulation is a bad habit inherited by languages with lots of memory to waste...  ;D  ;D  ;D

all the string functions from c are available...

The LCD code is here http://arduino.berlios.de/index.php/Tutorial/LCD8Bits

it's very simple to do a function that takes a string and loops calling LcdDataWrite() for each character (you'll end up with an equivalent of printString() for the LCD)




Logged

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

i'm feeling nice smiley

void printStringLCD(unsigned char *s)
{
       while (*s)
               LcdDataWrite(*s++);
}


this is like printString but sends to LCD
in arduino 4 this will be part of the standard language

massimo
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 134
panta rei resist the resistors!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

yeah great!
thanks! smiley
can't really understand why you are feeling nice!? ;-)

in fact I've seen that in the lib/avrlib folder there is actually an lcd.c and lcd.h and much more...there is even a servo.c library (I couldn't find the stdio.h though) but this is not used in the
tutorial and I can't really understand why we can't use these with Arduino (at least this is what I've been led to think because no one in the forum talks about this hidden goldmine ;-) )

I'm not interested in the lcd functions right now smiley
thanks anyhow.  smiley
what I'm really interested is in understanding the guts of Arduino software...and in particular to better understand what are the steps to implement it for another microcontroller (AVR and PIC), and many many more things...but I want to write them all at once on a new thread smiley

I don't want to take the thread away from mrbpp

hear you soon
b.



Logged

Britanny
Offline Offline
Full Member
***
Karma: 0
Posts: 233
Mais vrai, j'ai trop pleuré, toute lune est atroce
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yeah...

really cool your function.... smiley-grin

no no beltran, i "drink" your thread...

On the idea of beltran, i've take a look in the avrlib directory... ohoh...
there is some cute file
lcd.h lcd.c...
in lcd.c it redefine the custom caracters.. i'm french and love accents (éèêààâîôû)... can i redraw the custom caracters ?

how to use this library ?

my lcd display controller is not a ks0108 but a KS0066 (i've bougth 2 : 1X16 and 4x16)... can use the lib ?

i've tried the lcdtutorial (with arduino002) but unable to initialize correctly the lcd display... (i've spent some hours with it)
sometime (after many reset) it shows some caracters sometime nothing...
is it cause of the controller that is not the same than in the tutorial ?

And Masimo you say all the string functions from c are available...  
and  ???
which one ?
a link for tutorial for c langage usable string function. and how to use it directly in arduino :smiley

I repeat my knowledge in c are..... :'( null.

Ohhhh pleaazzzzzze Massimo or beltran would you help a newbies (not newb in all langages) to point to some good help files.

regards
regards
regards
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 134
panta rei resist the resistors!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

salut, smiley-wink
I'm a newbie as well in Arduino...and in C...
I've started studying C thanks to arduino and going deeper now.
I've no clue yet on how to use the string library (I thought it was stdio.h but couldn't find it nor make it work)
here are a few resources for C:

- the excellent howstuffismade C article
http://computer.howstuffworks.com/c.htm/printable
(very good at explaning pointers)

- teach yourself C in 24 Hours online book
http://aelinik.free.fr/c/

- teach yourself C in 21 days online book
http://lib.daemon.am/Books/C

- some more low level C for microprocessors
http://www.learn-c.com

- as a compiler I chose MinGW http://mingw.org
which is very geeky and low level (you must compile through command line) but if you will choose it I can give you a sample .bat file to automatize the compilation. Maybe you can test DJGPP http://www.delorie.com/djgpp/ and tell me how it is ;-)...it would have been my next test, but I haven't had time yet to look over it.

I'm not sure if I made the right choice, maybe Massimo or someone else has a better platform to suggest... I even thought if it was possible to compile in C through arduino since it uses gpp as all the other free compilers...but I'm not sure of that yet...this is one of the questions I will put on the "other" thread smiley

besides that...
where are you from? I lived for almost two years in Paris and I can understand that you like accents smiley

hope this helps
à bientot (sorry! no accent aigu dans mon clavier ;-) )
beltran

ps. did you read the datasheet for your LCD? you might find valuable info in it.
« Last Edit: February 21, 2006, 01:33:53 pm by beltran » Logged

Britanny
Offline Offline
Full Member
***
Karma: 0
Posts: 233
Mais vrai, j'ai trop pleuré, toute lune est atroce
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

thanks for the links...
i'll start read it when our basicstamp's workshop will be finished.

I'm on mac.... i can download and install devtools... but had to configure the gcc compiler...
i'm not sure i'm able to do that smiley-razz

I'm from north of france : near Lille.

For the lcd i've read the lcd datasheet and the timing and instruction for init are the same than in the tut...
(i've saw in the update info, that there was a bug with the milli instruction.... perhaps a starting point)
i've rapidly tested this morning the source with arduino003...
i've got a cursor but nothing on the screen.
need more time to test more seriously with new version.

and in the lcdtut, it's only for 8bits communication...
how to for the 4bits ?
(suppose init correctly the lcd in 4bits mode) and nothing more  (use the first 4 pins data...) ?

regards
Logged

Pages: [1]   Go Up
Jump to: