glcd_text fonksiyon hatası

Başlatan enigmagazi, 23 Eylül 2011, 14:37:26

enigmagazi

Arkadaşlar T6963C için kütüphane hazırlıyorum ama Attempt to create a pointer to a constant diye bir hata veriyor mesela glcd_text(20,1,"Deneme",1,1); satırıyla yazı yazdırmak istiyorum ama char ifadeden sonra virgülde hata vererek yukardaki hatayı veriyo  glcd_text fonksiyonumda şu:

void glcd_text(int x, int y, char *textptr, int size, int1 color)
{
   int i, j, k, l, m;                     // Loop counters
   BYTE pixelData[5];                     // Stores character data

   for(i=0; textptr[i] != '\0'; ++i, ++x) // Loop through the passed string
   {
      if(textptr[i] < 'S') // Checks if the letter is in the first text array
         memcpy(pixelData, TEXT[textptr[i]-' '], 5);
      else if(textptr[i] <= '~') // Check if the letter is in the second array
         memcpy(pixelData, TEXT2[textptr[i]-'S'], 5);
      else
         memcpy(pixelData, TEXT[0], 5);   // Default to space

      if(x+5*size >= 240)          // Performs character wrapping
      {
         x = 0;                           // Set x at far left position
         y += 7*size + 1;                 // Set y at next position down
      }
      for(j=0; j<5; ++j, x+=size)         // Loop through character byte data
      {
         for(k=0; k<7*size; ++k)          // Loop through the vertical pixels
         {
            if(bit_test(pixelData[j], k)) // Check if the pixel should be set
            {
               for(l=0; l<size; ++l)      // The next two loops change the
               {                          // character's size
                  for(m=0; m<size; ++m)
                  {
                     glcd_pixel(x+m, y+k*size+l, 1); // Draws the pixel
                  }
               }
            }
         }
      }
   }
}


Sizce hata ne özellikle fonksiyonda char yazmam gerekn yeri int değer oalrak görüyor yani sayı yazınca derliyo ama ben yazı yazdırmak istiyorum.

ErsinErce

const char *textptr


olarak tanımlarsanız sorun kalmaz

enigmagazi

busefer fonksiyonu tanımladığım yerde hata veriyo ve cabası birsürü hata veriyor. kırmızıyla yazdığım yeri secip hata veriyo daha birsürüde sıralıyo anlamadım derleyici versiyonuyla ilgili olabilirmi? void


glcd_text(int x, int y, const char *textptr, int size, int1 color)

ErsinErce

fonksiyonu tanımladığınız yerde de aynı değişikliği yaptınız mı?

enigmagazi

zaten fonksiyonu tanımladığım yerde değişiklik yaptım başka yerde yapılcakmı koduda atayım size

void glcd_text(int x, int y,const char *textptr, int size, int1 color)
{
   int i, j, k, l, m;                     // Loop counters
   BYTE pixelData[5];                     // Stores character data

   for(i=0; textptr[i] != '\0'; ++i, ++x) // Loop through the passed string
   {
      if(textptr[i] < 'S') // Checks if the letter is in the first text array
         memcpy(pixelData, TEXT[textptr[i]-' '], 5);
      else if(textptr[i] <= '~') // Check if the letter is in the second array
         memcpy(pixelData, TEXT2[textptr[i]-'S'], 5);
      else
         memcpy(pixelData, TEXT[0], 5);   // Default to space

      if(x+5*size >= 240)          // Performs character wrapping
      {
         x = 0;                           // Set x at far left position
         y += 7*size + 1;                 // Set y at next position down
      }
      for(j=0; j<5; ++j, x+=size)         // Loop through character byte data
      {
         for(k=0; k<7*size; ++k)          // Loop through the vertical pixels
         {
            if(bit_test(pixelData[j], k)) // Check if the pixel should be set
            {
               for(l=0; l<size; ++l)      // The next two loops change the
               {                          // character's size
                  for(m=0; m<size; ++m)
                  {
                     glcd_pixel(x+m, y+k*size+l, color); // Draws the pixel
                  }
               }
            }
         }
      }
   }
}
kodumun son hali bu main içindede

glcd_text(20,1,"Deneme",1,1); Yazı yazdırmak istiyorum ama bu sefer az önceki hatayı veriyor yani fonksiyonun başındaki *textptr kısmını işaretliyor kırmızı yaptığım kısmı.

ErsinErce

bu kodları main.c içinde mi tanımlıyorsunuz? yoksa ayrı bir c dosyasında mı?
main.c de tanımlıyorsanız main fonksiyonun üstünde bulunsun
ayrı bir c dosyasında tanımlıyorsanız h dosyasına da const yazdığımız kısmı eklemelisiniz

enigmagazi

Main fonksiyonunun üstünde fonksiyonu tanımlıyorum mainin içindede çalıştırıyorum çağırarak ama hata veriyor anlamadım.

ErsinErce

bu fonk harici başka bir yerde textptr ı kullanıyorsanız ismini değiştirip deneyin

enigmagazi

Başka yerde kullanmıyorum tek bu fonksiyonda kullanıyorum birşey denedim kodu derledi ama busefer ekrana yazmıyor en üstte birtane
char x="Deneme";
diye bir değişken atadım main içindede

glcd_text(10,10,x,1,1);
diyede çalıştırdım bu sefer derledi ama glcd de ekranda birşey yok. tabi const yapmadan charı

ErsinErce

const char x[]="Deneme";
glcd_text(10,10,x,1,1);

yaptığınızda ekranda görünüyor mu?
birde önceki değişitrme sonrası verdiği hatalar neler?

enigmagazi

Alıntı yapılan: ErsinErce - 23 Eylül 2011, 17:33:38
const char x[]="Deneme";
glcd_text(10,10,x,1,1);

yaptığınızda ekranda görünüyor mu?
birde önceki değişitrme sonrası verdiği hatalar neler?

Program derliyor ama görünmüyor. Yani ekrana yazmıyo derleyici sürümüyle ilgüli bir hata olabilirmi ama en son sürümü kullanıyorum 4.120 yi.

enigmagazi

const char x="Deneme";
glcd_text(10,10,x,1,1);

yapınca  ="Deneme"; sonundaki noktalı virgülü secerek Expression must evaluate to a constant hatası veriyor

const char x[]="Deneme";
glcd_text(10,10,x,1,1);
diye tanımlayıp yazınca bu seferde main içindeki  glcd_text(10,10,x,1,1); satırındaki x i secerek Attempt to create a pointer to a constant hatasını veriyor.


Fonksiyonu tanımlarken 
void glcd_text57(int x, int y, const char* textptr, int size, int1 color)
diye tanımladığımda yani const yaptığımda ise 100 tane hata veriyor.

*** Error 28 "lcd.c" Line 155(37,41): Expecting an identifier
*** Error 48 "lcd.c" Line 155(43,50): Expecting a (
*** Error 28 "lcd.c" Line 155(67,71): Expecting an identifier
*** Error 43 "lcd.c" Line 155(72,73): Expecting a declaration
*** Error 43 "lcd.c" Line 156(1,2): Expecting a declaration
*** Error 43 "lcd.c" Line 160(3,6): Expecting a declaration
*** Error 43 "lcd.c" Line 160(6,7): Expecting a declaration
*** Error 48 "lcd.c" Line 160(7,8): Expecting a (
*** Error 43 "lcd.c" Line 160(9,10): Expecting a declaration
*** Error 43 "lcd.c" Line 160(10,11): Expecting a declaration
*** Error 48 "lcd.c" Line 160(12,19): Expecting a (
*** Error 48 "lcd.c" Line 160(20,21): Expecting a (
*** Error 43 "lcd.c" Line 160(23,25): Expecting a declaration
*** Error 43 "lcd.c" Line 160(26,30): Expecting a declaration
*** Error 43 "lcd.c" Line 160(30,31): Expecting a declaration
*** Error 43 "lcd.c" Line 160(32,34): Expecting a declaration
*** Error 48 "lcd.c" Line 160(34,35): Expecting a (
*** Error 43 "lcd.c" Line 160(37,39): Expecting a declaration
*** Error 48 "lcd.c" Line 160(39,40): Expecting a (
*** Error 43 "lcd.c" Line 161(3,4): Expecting a declaration
*** Error 43 "lcd.c" Line 162(5,7): Expecting a declaration
*** Error 43 "lcd.c" Line 162(7,8): Expecting a declaration
*** Error 48 "lcd.c" Line 162(8,15): Expecting a (
*** Error 48 "lcd.c" Line 162(16,17): Expecting a (
*** Error 43 "lcd.c" Line 162(19,20): Expecting a declaration
*** Error 43 "lcd.c" Line 162(21,24): Expecting a declaration
*** Error 43 "lcd.c" Line 162(24,25): Expecting a declaration
*** Error 12 "lcd.c" Line 163(28,35): Undefined identifier   textptr
*** Error 48 "lcd.c" Line 163(36,37): Expecting a (
*** Error 43 "lcd.c" Line 163(38,39): Expecting a declaration
*** Error 43 "lcd.c" Line 163(39,42): Expecting a declaration
*** Error 43 "lcd.c" Line 163(42,43): Expecting a declaration
*** Error 43 "lcd.c" Line 163(43,44): Expecting a declaration
*** Error 48 "lcd.c" Line 163(45,59): Expecting a (
*** Error 43 "lcd.c" Line 163(60,61): Expecting a declaration
*** Error 43 "lcd.c" Line 164(5,9): Expecting a declaration
*** Error 43 "lcd.c" Line 164(10,12): Expecting a declaration
*** Error 43 "lcd.c" Line 164(12,13): Expecting a declaration
*** Error 48 "lcd.c" Line 164(13,20): Expecting a (
*** Error 48 "lcd.c" Line 164(21,22): Expecting a (
*** Error 43 "lcd.c" Line 164(24,26): Expecting a declaration
*** Error 43 "lcd.c" Line 164(27,30): Expecting a declaration
*** Error 43 "lcd.c" Line 164(30,31): Expecting a declaration
*** Error 12 "lcd.c" Line 165(29,36): Undefined identifier   textptr
*** Error 48 "lcd.c" Line 165(37,38): Expecting a (
*** Error 43 "lcd.c" Line 165(39,40): Expecting a declaration
*** Error 43 "lcd.c" Line 165(40,43): Expecting a declaration
*** Error 43 "lcd.c" Line 165(43,44): Expecting a declaration
*** Error 43 "lcd.c" Line 165(44,45): Expecting a declaration
*** Error 48 "lcd.c" Line 165(46,60): Expecting a (
*** Error 43 "lcd.c" Line 165(61,62): Expecting a declaration
*** Error 43 "lcd.c" Line 166(5,9): Expecting a declaration
*** Error 45 "lcd.c" Line 167(28,29): Subscript out of range
*** Error 43 "lcd.c" Line 167(30,31): Expecting a declaration
*** Error 48 "lcd.c" Line 167(32,46): Expecting a (
*** Error 43 "lcd.c" Line 167(47,48): Expecting a declaration
*** Error 43 "lcd.c" Line 169(5,7): Expecting a declaration
*** Error 43 "lcd.c" Line 169(7,8): Expecting a declaration
*** Error 48 "lcd.c" Line 169(8,9): Expecting a (
*** Error 43 "lcd.c" Line 169(10,11): Expecting a declaration
*** Error 43 "lcd.c" Line 169(11,12): Expecting a declaration
*** Error 48 "lcd.c" Line 169(17,21): Expecting a (
*** Error 43 "lcd.c" Line 169(20,23): Expecting a declaration
*** Error 43 "lcd.c" Line 169(23,24): Expecting a declaration
*** Error 43 "lcd.c" Line 170(5,6): Expecting a declaration
*** Error 48 "lcd.c" Line 171(9,10): Expecting a (
*** Error 43 "lcd.c" Line 171(11,12): Expecting a declaration
*** Error 43 "lcd.c" Line 171(12,13): Expecting a declaration
*** Error 48 "lcd.c" Line 172(9,10): Expecting a (
*** Error 43 "lcd.c" Line 172(12,13): Expecting a declaration
*** Error 43 "lcd.c" Line 172(13,14): Expecting a declaration
*** Error 48 "lcd.c" Line 172(19,23): Expecting a (
*** Error 43 "lcd.c" Line 172(21,22): Expecting a declaration
*** Error 43 "lcd.c" Line 172(22,23): Expecting a declaration
*** Error 43 "lcd.c" Line 173(5,6): Expecting a declaration
*** Error 43 "lcd.c" Line 174(5,8): Expecting a declaration
*** Error 43 "lcd.c" Line 174(8,9): Expecting a declaration
*** Error 48 "lcd.c" Line 174(9,10): Expecting a (
*** Error 43 "lcd.c" Line 174(11,12): Expecting a declaration
*** Error 43 "lcd.c" Line 174(12,13): Expecting a declaration
*** Error 48 "lcd.c" Line 174(14,15): Expecting a (
*** Error 48 "lcd.c" Line 174(16,30): Expecting a (
*** Error 43 "lcd.c" Line 174(32,34): Expecting a declaration
*** Error 48 "lcd.c" Line 174(34,35): Expecting a (
*** Error 48 "lcd.c" Line 174(37,38): Expecting a (
*** Error 48 "lcd.c" Line 174(40,44): Expecting a (
*** Error 43 "lcd.c" Line 175(5,6): Expecting a declaration
*** Error 43 "lcd.c" Line 176(7,10): Expecting a declaration
*** Error 43 "lcd.c" Line 176(10,11): Expecting a declaration
*** Error 48 "lcd.c" Line 176(11,12): Expecting a (
*** Error 43 "lcd.c" Line 176(13,14): Expecting a declaration
*** Error 43 "lcd.c" Line 176(14,15): Expecting a declaration
*** Error 48 "lcd.c" Line 176(16,17): Expecting a (
*** Error 43 "lcd.c" Line 176(18,19): Expecting a declaration
*** Error 43 "lcd.c" Line 176(19,20): Expecting a declaration
*** Error 48 "lcd.c" Line 176(20,24): Expecting a (
*** Error 43 "lcd.c" Line 176(26,28): Expecting a declaration
*** Error 48 "lcd.c" Line 176(28,29): Expecting a (
*** Error 43 "lcd.c" Line 177(7,8): Expecting a declaration
*** Error 43 "lcd.c" Line 178(9,11): Expecting a declaration
      100 Errors,  2 Warnings.


yalnız dikkatimi ceken şey ben fonksiyonda char diye tanımladığım kısmı bana int8 olarak gösteriyo yani int değer gir dergibi resmide



Koyu yazılan kısım aslında bende char tanımlı ama int8 gösteriyor.