Derleme Hatası: ***Error 51 : A numeric expression must appear here

Başlatan NaMcHo, 27 Temmuz 2010, 15:18:22

NaMcHo

Yazdıgım kod bu:

#include <16f877.h>
#fuses xt,nowdt,noprotect,noput,nobrownout,nocpd,nolvp,nowrt
#use delay(clock=4000000)
#use fast_io(b)


void sayac(int sayi)
{
   int a;
   switch(sayi)
   {
      case 0: 
               for(a=0;a<17;a++)
               {
               output_high(pin_b4);    //b4-b5-b6  Y7 ye 0 yollamak icin
               output_high(pin_b5);
               output_high(pin_b6);
               delay_ms(5);
               output_low(pin_b4);     // Y6 ya 0 yollanıyor Y7 1 oldu
               delay_ms(5);
               output_low(pin_b5);     //b5 low b4 high la Y5 0 lanıyor
               output_high(pin_b4);                   *               *//
               output_low(pin_b4);     //Y4 e 0 yollanıyor bu noktada
               delay_ms(5);
               }break;
       case 1: for(a=1;a<=16;a++)
               {
               output_high(pin_b4);   //Y7 icin
               output_high(pin_b5);          
               output_high(pin_b6);          *//
               delay_ms(5);
               output_low(pin_b4);    //Y6 icin
               delay_ms(5);                  *//
               output_low(pin_b5);   //Y5 icin 
               output_high(pin_b4);         *//
               }break;
       case 2: for(a=1;a<=16;a++)
               {
               output_high(pin_b4);    //Y7 
               output_high(pin_b5);
               output_high(pin_b6);       *//
               delay_ms(5);
               output_low(pin_b4);     // Y6 
               delay_ms(5);                  *//                                      //
               output_low(pin_b5);     //Y4 e 0 yollanıyor bu noktada
               delay_ms(5);
               }break;
      case 3: for(a=1;a<=16;a++)
              {
              output_high(pin_b6);
              output_high(pin_b5);
              output_high(pin_b4);
              delay_ms(5);
              
              output_low(pin_b4);
              delay_ms(5);
              }break;
      case 4: for(a=1;a<=16;a++)
              {
               output_high(pin_b6);
               output_high(pin_b5);
               output_high(pin_b4);
               delay_ms(5);
               
               output_low(pin_b5);
               delay_ms(5);

               output_low(pin_b4);
               delay_ms(5);
               
               }break;
      case 5: for(a=1;a<=16;a++)
              {
                  output_high(pin_b6);  //Y7 0 landı
                  output_high(pin_b5);
                  output_high(pin_b4);    
                  delay_ms(5);               *//
                  
                  output_low(pin_b5);   //Y5 0 landı
                  delay_ms(5);                   *//
                  
              }break;
      case 6: for(a=1;a<=16;a++)
              {
                  output_high(pin_b6);    //Y7 0 lanıyo
                  output_high(pin_b5);
                  output_high(pin_b4);             *//
                  delay_ms(5);
                  
                  output_low(pin_b5); //Y4 0 lanıyo
                  output_low(pin_b4);           *//
                  delay_ms(5);
              }break;
      case 7: for(a=1;a<=16;a++)
              {
                  output_high(pin_b6);    //Y7 0 lanıyo
                  output_high(pin_b5);
                  output_high(pin_b4);             *//
              }break;
    }      
}

int x;
void main()
{
   setup_psp(psp_disabled);
   setup_timer_1(t1_disabled);
   setup_timer_2(t2_disabled,0,1);
   setup_adc_ports(no_analogs);
   setup_adc(adc_off);
   setup_ccp1(ccp_off);
   setup_ccp2(ccp_off);
   
   set_tris_b(0);
   output_b(0);
   
   while(1)
   {
      for(x=0;x<8;x++)                //1. 74138 icin 
      {
         output_b(0b00000000 | x);
         delay_ms(5);
         sayac(x);
         delay_ms(250);
      }
      for(x=0;x<8;x++)               //2. 74138 icin
      {
         output_b(0b00010000 | x);
         delay_ms(5);
         sayac(x);
         delay_ms(250);
      }
      for(x=0;x<8;x++)              //3. 74138 icin
      {
         output_b(0b00100000);
         delay_ms(5);
         sayac(x);
         delay_ms(250);
      }
      for(x=0;x<8;x++)              //4. 74138 icin
      {
         output_b(0b00110000 | x);
         delay_ms(5);
         sayac(x);
         delay_ms(250);
      }
   }  
}


PIC C COMPILER ın verdigi hatalar  :
***Error 51 "cilgin.c" line 39(16,17): A numeric expression must appear here
***Error 51 "cilgin.c" line 84(15,16): A numeric expression must appear here
***Error 51 "cilgin.c" line 101(15,16): A numeric expression must appear here

Verdigi hataları tıkladıgımda imlecin geldigi yerleri yazıyorum sırayla;
-case 1 deki for döngüsünün sonu.
-case 5 deki for döngüsünün sonu.              (For döngülerindeki bitis parantezlerinin solu.)
-case 7 deki for döngüsünün sonu.




JKramer

case'lerin sonunda break olması gerekiyor.

NaMcHo

Alıntı yapılan: JKramer - 27 Temmuz 2010, 15:37:39
case'lerin sonunda break olması gerekiyor.

:) evet düzelttim ama hala aynı hatayı veriyor.

JKramer

Comment'lerden kaynaklanıyor. Tek satırlık açıklama yazacaksanız sadece bunu (//) (parantezler yok), birden fazla satırlık açıklama yazacaksanız bunu (/*qwerty*/) kullanın.

NaMcHo

Tmm dır duzeldi.
Teşekkürler.