@Furzgas
const sagt in diesem Fall aus, dass der Zeiger nur lesend und nicht schreibend dereferenziert (an zu stelle zugegriffen, wo der Zeiger hinzeigt) werden darf. Die Funktion darf auch mit der Adresse eines nicht-konstanten chars aufgerufen werden, da man char* immer ohne Bedenken nach const char* casten kann. Nur andersrum, also wenn die Funktion einen char* erwarten würde und nicht const char*, dürfte man ihr nicht einen Zeiger auf einen konstanten char übergeben, da es nicht sichergestellt sein würde, dass die Funktion nur lesend darauf zugreift.
Ich habe keinen RP6 und kenn mich dementsprechend nicht mit der Lib aus, aber vermutlich erwartet die Funtion einen null-terminierten String als Argument. In C sind Strings immer Arrays aus chars, wobei das Stringende duch einen 0-character kenngezeichet ist. Und Arrays übergibt man üblicherweise indem man die Adresse auf das erste Element angibt.
Sorry, aber das sind alles Grundlagen von C, die man auch draufhaben sollte. http://tutorial.schornboeck.net/inhalt.htm ist ein gutes Tutorial dafür. Dort ist auch beschrieben was Zeiger sind und wie man mit ihnen umgeht.
Es gibt eine Java-VM für AVRs ( http://www.harbaum.org/till/nanovm/index.shtml ), man muss aber bedenken, dass der Java-Bytecode dort interpretiert wird und um den Faktor 50 langsamer ist als nativ ausgeführter Code.
Wenn Du objektorientiert programmieren möchtest, kanns Du auch C++ nehmen, dies wird vom avr-g++ größtenteils unterstützt.
MfG Mark