glcd ye harici eepromdan veri çekip yazıramıyorum

Başlatan zamzam23, 28 Nisan 2011, 15:03:37

zamzam23

kullandıgım kod şu şekilde:
#include <18F4520.h>
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,PUT,NOWRT,NODEBUG,NOCPD,NOSTVREN,NOMCLR,H4
#use delay (clock=40000000)
#use i2c(master,sda=pin_c1,scl=pin_c2,slow=100000) 
#include <2402.c>  // 2402.c dosyası programa ekleniyor
#include "dr.c"
#include "sekil.c"
#include "flex_lcd.c"
#define GLCD_WIDTH   128

int nec[];
   
  char nazim[]="Allah";
//*********
unsigned int i,j, k; 
unsigned int16 sayac=0,a=0,bak=15;
//-------------------------{}----------------------------
void bitmap_world(int x,y,z)
{
//----------------------------------------------------
for(a=0;a<=500;a=a+1)
{
nec[a]=read_ext_eeprom(a);
}
//-------------------------------------------


sayac=0;
int width = 128;
int height = 64;
for(i=0;i<height;i+=8) {
   for(j=0;j<width;j++) {
      for(k=0;k<8;k++) 
      { 
       
            if(bit_test(nec[sayac],k)){
               glcd_pixel(x+j,y+i+k,ON); 
         
            }  
            
               
      }
      sayac++;
   }
}
}
//-------------------------{}----------------------------   
void ilkekran(int8 bekleme){
bitmap_world(0,0,1);
delay_ms(bekleme);
}
//-------------------------{}----------------------------

void main()
{
 setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   
  glcd_init(ON); 
  lcd_init(); 
         delay_ms(25);
ilkekran(1);a=0;
while(1){
lcd_gotoxy(1,1);
printf(lcd_putc,"%x",read_ext_eeprom(a));delay_ms(200);
a++;
}
//sprintf(bak, "%X\0", (byte)bak); // Converts sec to text
//glcd_text57(0,0,bak,1,1);
//glcd_line(0,0,100,60,1);
//glcd_rect(10,20,100,60,0,1);
//glcd_bar(0,0,10,10,40,1);
//glcd_circle(30,30,25,0,1);//m(x,y),r,fill,color
   while(1);
   


} 



burada epromun içine .bin dosyasını atıorum. eepromdan verileri çekip nec[] dizisine atıyorum. kontrol için nec dizinisi 2x16 lcd ekranda görebiliyorum ancak iş gcld ye gelince anlamsız kararkerler cıkıyor. yardımcı olursanız sevınırım.
sorun şurada; bin dosyası eeproma dogru yuklenmıs. cunku eepromdan direkt 2x16 lcd ye yazdırdıgım zaman yazıyor. ancak diziye kaydedip diziyi 2x16 ekrana yazdırdıgım zaman yazmıyor. farklı seyler cıkıyor. dolayısıyla o diziyi glcd ye yazdırdıgım zaman farklı seyler yazıyor. sorun : harici eepromdan diziye kayıt yapamıyorum. yardımcı olur musunuz?