View Single Post
Old 07-08-2012, 01:59 PM   #1
qloi
Đệ tử 3 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 55
:
help !!! lỗi Out Of ROM

mình viết code cho PIC16f59 thì bị lỗi "out of ROM,the segment or program í tô large Main".mặc dù ROM còn rất nhiều(xóa bớt 1 hàm thì còn tới 78% trong khi hàm này tương đương hàm trên) . Mọi người ai biết cách giải quyết chỉ với?
Code:
#include <16f59.h>
#device *=8
#fuses xt
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int1 dat[20];
int i,j;

#bit L0 = 0x06.0
#bit L1 = 0x06.1
#bit L2 = 0x06.2
#bit L3 = 0x06.3
#bit L4 = 0x06.4
#bit L5 = 0x06.5
#bit L6 = 0x06.6
#bit L7 = 0x06.7

#bit L8 = 0x07.0
#bit L9 = 0x07.1
#bit L10 = 0x07.2
#bit L11 = 0x07.3
#bit L12 = 0x07.4
#bit L13 = 0x07.5
#bit L14 = 0x07.6
#bit L15 = 0x07.7

#bit L16 = 0x08.0
#bit L17 = 0x08.1
#bit L18 = 0x08.2
#bit L19 = 0x08.3

void out_dat(char del)
{
   L0 = dat[0];
   L1 = dat[1];
   L2 = dat[2];
   L3 = dat[3];
   L4 = dat[4];
   L5 = dat[5];
   L6 = dat[6];
   L7 = dat[7];
   L8 = dat[8];
   L9 = dat[9];
   L10 = dat[10];
   L11 = dat[11];
   L12 = dat[12];
   L13 = dat[13];
   L14 = dat[14];
   L15 = dat[15];
   L16 = dat[16];
   L17 = dat[17];
   L18 = dat[18];
   L19 = dat[19];
   delay_ms(del);
}
void spl_bit(int32 data)
{
   for(i=0;i<20;i++)
   {
      dat[i] = data >> i&1;;
   }
}

/////////////////kieu 1///////////////
void l1()
{
   spl_bit(0x00000400);
      out_dat(100);
      spl_bit(0x00000E00);
      out_dat(100);
      spl_bit(0x00001F00);
      out_dat(100);
      spl_bit(0x00003F80);
      out_dat(100);
      spl_bit(0x00007FC0);
      out_dat(100);
      spl_bit(0x0000FFE0);
      out_dat(100);
      spl_bit(0x0001FFF0);
      out_dat(100);
      spl_bit(0x0003FFF8);
      out_dat(100);
      spl_bit(0x0007FFFC);
      out_dat(100);
      spl_bit(0x000FFFFE);
      out_dat(100);;
      spl_bit(0x000FFFFF);
      out_dat(100);
      
      //frame 2
      spl_bit(0x000FFBFF);
      out_dat(100);
      spl_bit(0x000FF1FF);
      out_dat(100);
      spl_bit(0x000FE0FF);
      out_dat(100);
      spl_bit(0x000FC07F);
      out_dat(100);
      spl_bit(0x000F803F);
      out_dat(100);
      spl_bit(0x000F001F);
      out_dat(100);
      spl_bit(0x000E000F);
      out_dat(100);
      spl_bit(0x000C0007);
      out_dat(100);
      spl_bit(0x00080003);
      out_dat(100);
      spl_bit(0x00000001);
      out_dat(100);
      spl_bit(0);
      out_dat(100);
}

////////////////kieu 2////////////////
void l2()
{
      spl_bit(0x00000401);
      out_dat(100);
      spl_bit(0x00080601);
      out_dat(100);
      spl_bit(0x000C0701);
      out_dat(100);
      spl_bit(0x000E0781);
      out_dat(100);
      spl_bit(0x000F07C1);
      out_dat(100);
      spl_bit(0x000F87E1);
      out_dat(100);
      spl_bit(0x000FC7F1);
      out_dat(100);
      spl_bit(0x000FE7F9);
      out_dat(100);
      spl_bit(0x000FF7FD);
      out_dat(100);
      spl_bit(0x000FFFFF);
      out_dat(100);
      
      //frame 2
      spl_bit(0x000FFBFE);
      out_dat(100);
      spl_bit(0x0007F9FE);
      out_dat(100);
      spl_bit(0x0003F8FE);
      out_dat(100);
      spl_bit(0x0001F87E);
      out_dat(100);
      spl_bit(0x0000F83E);
      out_dat(100);
      spl_bit(0x0000781E);
      out_dat(100);
      spl_bit(0x0000380E);
      out_dat(100);
      spl_bit(0x00001806);
      out_dat(100);
      spl_bit(0x00000802);
      out_dat(100);
      spl_bit(0);
      out_dat(100);

}
/////////////kieu 3////////////////
void l3()
{
      spl_bit(0xFFFFFFFF);
      out_dat(100);
      spl_bit(0);
      out_dat(100);
}
////////////////////////////////////
void main()
{
   set_tris_b(0);
   set_tris_c(0);
   set_tris_d(0);
   while(1)
   {
      for(j=0;j<5;j++) {l1();}
      for(j=0;j<5;j++) {l2();}
      for(j=0;j<15;j++) {l3();}
   }
}
__________________
heart.touching.2010@gmail.com!
qloi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn