Stringy v C - poslání řetězce do LCD

Zdar…
Rád bych poslal do LCD nějaký textový řetězec. Bohužel jsem v Cčku začátečník patlal. Už mě nebaví posílat do LCD texty po jednom znaku, a rád bych udělal třeba funkci:

void LCD_WrTEXT(char *t)

Kde předáte jako konstantu nebo prostě jako řetězec nějaký textík. A ten textík potom pomocí další fce zapíšete do displeje po jednom znaku.
Díky za rady jak na textové řetězce.

Sranda… tak už jsem to vymyslel :smiley:

void LCD_WrTEXT(char *t) { char i = 0; while (t* != 0) { LCD_WrDATA(t*); _delay_us(40); i++; } } **

Zdravím. Tak přecejenom problém. Mám napsanou fci, která mi tam pošle řetězec.
Když si pak napíšu program, třebas takovýhle:

... LCD_WrTEXT("Honzik"); ...
Tak mám podezření, že AVR Studio ten program přeloží trochu divně. Stringová konstanta je sice uložená ve CODE segmentu, jenže při startu programu si ten procesor ty stringy z CSEG zkopíruje do DSEG, po česku řečeno zasírá mi s tím SRAMku, a naprosto zbytečně. Dá se tohle nějak obejí/vyřešit/upravit?
Díky, Honza

Napriklad takto (uryvok z rozsiahlejsieho cyklu):

const char txt_m01_nadpis] PROGMEM =    "  Hlavne menu   ";
const char txt_m01_aktual_hodn] PROGMEM = "1.Aktualne hod.>";
const char txt_m01_ruc_teplota] PROGMEM = "2.Ruc.te:";
const char txt_m01_txt_rezim_pece] PROGMEM = "3.Pec:";
const char txt_m01_servis] PROGMEM = "4.Servis       >";
const char txt_m01_heslo_vseob] PROGMEM = "5.Heslo (-):";
const char txt_m01_heslo_1] PROGMEM = "5.Heslo (1):";
const char txt_m01_heslo_2] PROGMEM = "5.Heslo (2):";
const char txt_m01_heslo_3] PROGMEM = "5.Heslo (3):";
const char txt_m01_heslo_general] PROGMEM = "5.Heslo (G):";

// ...



// zobraz to co treba, 
dlzka_str = strcpy_Pk((char *)txt_bufer, (char *)txt_m01_nadpis);
fn_wr_string(1, 0, dlzka_str, (uint8_t *)txt_bufer, FALSE);

// to ,ze txt_bufer je spolocny pre vsetky rozne stringy a sluzi iba ako pomocny, aby sa kvoli kazdemu bajtu nemuselo chodit do Flash je myslim zrejme
// ak tu konstrukciu pouzijes inak, uz sa ti saprasi RAM

Trochu víc popisu by nešlo? Použít třeba méně zmatené názvy. 5 minut jsem jenom vykukával ten první řádek, co že to tam vlastně je.
Ale jinak díky, aspoň vim, jak zapsat konstantnu do CSEG.
Každopádně… v těhle ohledech assembler rulezz. Tam nkdy s timhle nebyly problémy.
“aby sa kvoli kazdemu bajtu nemuselo chodit do Flash je myslim zrejme”
To není zřejmé ani trochu. Já chci pro každý byte do CSEG, nechci to kopírovat (a navíc pomalu) přes DSEG.