Derleme Sorunu

Başlatan Eyt1, 25 Ocak 2016, 16:02:49

Eyt1

Selam arkadaşlar aşağıdaki kodda derleme hatası alıyorum. Yardımcı olur musunuz?




//#FUSES CCPB0// Lcd pinout settings
sbit LCD_RS at latb1_bit;
sbit LCD_EN at latb0_bit;
sbit LCD_D7 at latb7_bit;
sbit LCD_D6 at latb6_bit;
sbit LCD_D5 at latb5_bit;
sbit LCD_D4 at latb4_bit;


// Pin direction
sbit LCD_RS_Direction at TRISB1_bit;
sbit LCD_EN_Direction at TRISB0_bit;
sbit LCD_D7_Direction at TRISB7_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB4_bit;


char yuzler,birler,onlar,top=0;
int okunan=0,i=0,volt_tmp,volt_set_tmp;
unsigned int duty=0;
float akim=0.0,akim_set_=0.0,volt=0.0,volt_set=0.0,old_akim=100.0,old_akim_set=100.0,old_volt=100.0,old_volt_set=100.0;

///////////////////////////////////////////////
void pwm_gorev(unsigned int a)
{
 CCPR1L=(a>>2);
 CCP1CON.B5=(a>>1)&1;
 CCP1CON.B4=a&1;
}
///////////////////////////////////////////////
void Interrupt()
{
  if (TMR1IF_bit)
  {
    TMR1H         = 0xFF;
    TMR1L         = 0x60;
    TMR1IE_bit=0;
    okunan=ADC_Get_Sample(4);
    akim=okunan*0.004;//0.5 Ohm için.
    Delay_10us();
    okunan=ADC_Get_Sample(10);
    volt=okunan*0.029296875;
    if(akim_set_<0.1)duty=0;
    
    else if(akim>(akim_set_+0.5))duty=0;

    //else if(akim>akim_set_ && akim<=(akim_set_+0.02)){}
    
    else if(akim>(akim_set_+0.2))
                  {
                    if(duty>=3)duty-=3;
                  }

    else if(akim>(akim_set_+0.03))
                  {
                    if(duty>0)duty--;
                  }

    else if(volt>(volt_set+1) && duty>=5)
                  {
                    duty-=5;
                  }

    else if(volt<=(volt_set-1) && duty<1019 )
                  {
                    duty+=5;
                  }

    else if(volt>(volt_set+0.06))
                  {
                    if(duty>0)duty--;
                  }
    else if(volt<volt_set)
                  {
                    if(duty<1023)duty++;
                  }

    TMR1IF_bit = 0;
    TMR1IE_bit=1;
    pwm_gorev(duty);
  }
}
///////////////////////////////////////////////
void InitTimer1(){
  T1CON         = 0x01;
  TMR1IF_bit         = 0;
  TMR1H         = 0xFF;
  TMR1L         = 0x60;
  TMR1IE_bit         = 1;
  INTCON         = 0xC0;
}
///////////////////////////////////////////////
void goster()
{
         TMR1IE_bit         = 0;
         yuzler=duty/100;
         onlar=(duty/10)%10;
         birler=duty%10;
         Lcd_chr(1,14,(yuzler+48));
         Lcd_chr_cp((onlar+48));
         Lcd_chr_cp((birler+48));

         if(volt_set!=old_volt_set)
         {
         yuzler=(int)volt_set*10/100;
         onlar=((int)(volt_set))%10;
         birler=(int)(volt_set*10)%10;
         Lcd_chr(1,2,(yuzler+48));
         Lcd_chr_cp((onlar+48));
         Lcd_chr_cp('.');
         Lcd_chr_cp((birler+48));
         Lcd_chr_cp('V');
         old_volt_set=volt_set;
         }

         if(akim_set_!=old_akim_set)
         {
         yuzler=(int)(akim_set_*10/100);
         onlar=((int)(akim_set_))%10;
         birler=((int)(akim_set_*10))%10;
         Lcd_chr(2,2,(yuzler+48));
         Lcd_chr_cp((onlar+48));
         Lcd_chr_cp('.');
         Lcd_chr_cp((birler+48));
         Lcd_chr_cp('A');
         old_akim_set=akim_set_;
         }

         if(akim!=old_akim)
         {
         yuzler=(int)akim*10/100;
         onlar=((int)(akim))%10;
         birler=(int)(akim*10)%10;
         Lcd_chr(2,8,(yuzler+48));
         Lcd_chr_cp((onlar+48));
         Lcd_chr_cp('.');
         Lcd_chr_cp((birler+48));
         Lcd_chr_cp('A');
         old_akim=akim;
         }

         if(volt!=old_volt)
         {
         yuzler=(int)volt*10/100;
         onlar=((int)(volt))%10;
         birler=(int)(volt*10)%10;
         Lcd_chr(1,8,(yuzler+48));
         Lcd_chr_cp((onlar+48));
         Lcd_chr_cp('.');
         Lcd_chr_cp((birler+48));
         Lcd_chr_cp('V');
         old_volt=volt;
         }
         yuzler=0;birler=0;onlar=0;
         TMR1IE_bit         = 1;
}
///////////////////////////////////////////////////////
void main() {
OSCCON=0b11110000;
ANSELA=0b00110000;
ANSELB=4;
trisa=0b00011111;

trisb.b3=0;
CCP1CON=0x0c;
CCPR1L=0;
PR2=0xff;
T2CON.F1=0;
T2CON.F0=1;
T2CON.TMR2ON=1;



LCD_init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,1,"HELLO");
delay_ms(500);
Lcd_Cmd(_LCD_CLEAR);
ADC_Init();
FVRCON=0b10000010;//(2.048)
ADCON1.ADPREF1=1;
ADCON1.ADPREF0=1;
InitTimer1();

while(1)
        {
         if(porta.f0==0)
                        {
                          if(volt_set<30)volt_set+=0.100001;
                          i+=1000;
                          delay_ms(600);
                          while(porta.f0==0)
                                            {
                                             if(volt_set<29.1)volt_set+=1;
                                             goster();
                                             delay_ms(200);
                                            }

                        }
         if(porta.f1==0)
                        {
                         if(volt_set>0.1)volt_set-=0.1;
                         i+=1000;
                         delay_ms(600);
                         while(porta.f1==0)
                                            {
                                             if(volt_set>=1)volt_set-=1;
                                             goster();
                                             delay_ms(200);
                                            }
                        }
                        
          if(porta.f2==0)
                        {
                         if(akim_set_<=4)akim_set_+=0.100001;
                         i+=1000;
                         delay_ms(400);
                         /*while(porta.f2==0)
                                            {
                                             if(akim_set_<4)akim_set_+=1;
                                             goster();
                                             delay_ms(100);
                                            }*/
                        }
         if(porta.f3==0)
                        {
                         if(akim_set_>=0.1)akim_set_-=0.1;
                         i+=1000;
                         delay_ms(400);
                        /*while(porta.f3==0)
                                            {
                                             if(akim_set_>=1)akim_set_-=1;
                                             goster();
                                             delay_ms(100);
                                            }*/
                        }

         i++;
         if(i>=2000)
         {
          goster();
          i=0;
         }
       }
}

JKramer

En üstte #include satırları olması lazım, aldığınız hataları yazarsanız daha kolay yardımcı olunabilir. Bir de bu CCS değil de MikroC olabilir.

Eyt1


RaMu

Evet MikroC ye benziyor,
kullanılan mcu ve include işi herhalde IDE deki (programı yazıp derlediğimiz ortam-program) bir menüden hallediliyordu.

Konunun MikroC başlığına taşınmasını isteyin.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html