Pointer na const v C - zaver

Michal HW michalgregor@centrum.cz
Úterý Listopad 8 10:29:42 CET 2005


Funkce:
/************************************************************/
/* Tady se vypíše jeden řádek na LCD*/
/* Vstup jeden řádek */
 void LCD_Radek(const char * p_Vstup) {
  Del_Lcd();
  while ((*p_Vstup)!=0) {
   Lcd(*p_Vstup);
   ++p_Vstup;
  }
 }
je v poradku. Nekteri ji sice napsali jinak, ale to neni podstatne.

Problem je v:
 LCD_Radek("Hello second");  // Takhle to ma byt podle manualu kompilatoru
Text je ulozen ve FLASH v usporne forme:
    dw 0x0048 ;0x00, 'H'
    dw 0x32EC ;'e', 'l'
    dw 0x366F ;'l', 'o'
    dw 0x1073 ;' ', 's'
    dw 0x32E3 ;'e', 'c'

Pokud ale pouziji:
 const char txthokus[] = {"Hellow first"};
 LCD_Radek(&txthokus[0]);
Tak se text ulozi pomoci:
    retlw 'H'

Je videt ze kompilator ke dvema constantam pristupuje ruzne. Chyba je v 
kompilatoru nebo v nastaveni MPLABU.

Nemam moc casu takze to zatim ukoncim. Jedna se o PICL kompilator od 
HT-Softu a MPLAB 5.70. 16F877. Pouziji pole const textovych retezcu. Zkousel 
jsem si stahnout i novou verzi, ale ta mi pro zmenu nechtela kompilovat 
vubec. A to ani s novym MPLABem 7.24. Na problemu se dle HT-Softu pracuje. 
Az bude vice casu zkusim jejich IDE.
Dopisuji si s HT-Softem, uvidime co z nich vypadne.
Michal 




Další informace o konferenci Hw-list