Keil 8051 ve Hitech c18 de derlediğim ve sorunsuz çalıştırdığım programı Microchip mplab C18'e çevirdim. Ancak göstericilerle ilgili bir sorun var. Diğer iki işlemci ve derleyicide çatır çatır çalışan kod C18 de su koydu :(
verdiği warning şu;
E:\ERDAL\mp3picc\main.c:28:Warning [2054] suspicious pointer conversion
ekranda karakter dizisi çıkaracağına tuhaf şekiller çıkarıyor sanki belleğin farklı yerlerini okuyormuş gibi.Sebep ne ola ki?
yardımlarınız için teşekkürler
fonksiyonum ise bu;
unsigned int glcdPutStr( const rom far unsigned char *addr, char newColor)
{
unsigned char c;
unsigned char i = 0;
const rom far unsigned char *addr_ptr;
color = newColor;
addr_ptr = ( const rom far unsigned char *)addr;
while (c = *addr_ptr++)
{
i += gclcd_putc(c);
}
return(i);
}
tablo ise böyle(bir kısmı);
#pragma romdata Arial8
const rom unsigned char Arial8 [1522]={
0x08,0x10, // Configuracion
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00, // Espacio
0x00,0x00,0xF0,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00, // !
0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00, // "
0x40,0x0F,0xF0,0x02,0x40,0x0F,0xF0,0x02,0x40,0x02,
2054 error için söyle bir tanımlama var...
A pointer has been used as an integer or an an integer has been used as a pointer without an explicit cast.
pointer ın integer olarak kullanıldığını ya da tersi bir durumun oluştuğunu belirtiyor...
evet o tanımlamayı bende okudum ama integer nerde? onu çözemedim :cry: