Su kodlarda neden misisng #ENDIF hatasi

Başlatan Digimensch, 02 Mart 2014, 16:38:16

Digimensch

uzun zamandir ccs c die ile ugrasmiyordum.Bugün eskiden yazdigim asagidaki su kodlari CCS C 5.018 ile derlemek istedim
ama en son satirda missing #ENDIF hatasi veriyor.

//////////////////////////////////////////////
//Programmed by Ugur Yalcin
//Aralik 2010/////////////////////////////////

#if defined(__PCM__)
#include <16F84A.h>
#fuses XT,NOPROTECT,NOWDT
#use delay(clock=4000000,RESTART_WDT)
#include "flex_lcd.c"




void ledsinyal()
{
lcd_send_byte(0,0x0c);         //Imleci gizle
lcd_send_byte(0,0x01);         //Displayi sil

  int x=0;
   while(x<10)
   {
   output_high(pin_a2);
   //output_low(pin_b3);
   delay_ms(100);
   output_low(pin_a2);
   //output_high(pin_b3);
   delay_ms(100);
   x++;
   }
}

void sola_kaydir(void)
{
   lcd_send_byte(0,0x18);
}

void saga_kaydir(void)
{
   lcd_send_byte(0,0x1E);
}
void main() 
{
ledsinyal();
int a,i;

lcd_init(); //lcd baslat
lcd_putc("\f");  //lcd ekrani temizle
//lcd hafizasi 40 karaktere kadar alabilir
lcd_putc("    Ugur Yalcin  CCS ile KAYAN YAZI  ");


for(;;){

for(i = 0; i <= 35; i++)  //40 karakter için kaydirma
      {
       saga_kaydir();
  
       delay_ms(200);   // Kayma hizi
      }
for(a = 0; a <= 35; a++)
      {
       sola_kaydir();
     
       delay_ms(200);
      }

  }
}
 }   --->  Burayi hatali gösteriyor yani missing #ENDIF hatasini Burda veriyor.


Oyas bu kodlari daha öncelki IDE'lerde defalarca derlemistim sorun olmamisti.
Simid CCS C 5.018 ile derlerken neden bu hatayi veriyor??

mistek

main fonksiyonun üst tarafına
void ledsinyal(); yazın
fonksiyon prototipini göremedim.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

atomx

#include "flex_lcd.c" nedir #include ile header dosyasını eklemen gerekiyor doğrusu #include "flex_lcd.h" olmalı
Hüseyin TECER

Digimensch

@mistek
funksiyon void ledsinyal() en üsttde duruyor, Prototyp derken ?


@atomx
dosyalarin yaninda flex_lcd.c dosyasi var ve ben bunu projenin icine #include "flex_lcd.c"
seklinde include etmisim sorun Burda olamaz, ama senin dedigin gibi  flex_lcd.c   dosyasinin adini flex_lcd.h  seklinde degistirip su sekildede #include "flex_lcd.h"  include ettim ama hata yine ayni.
degisen birsey yok, bu kodlar ccs c nin eski versiyonlarinda gayet rahat derlenebiliyordu.Ama bugün yeni versiyonu indirdim denedim bu hatayi Verdi bir türlü cikartamadim hatanin nedenini?

ahmets

Programın başına
#if defined(__PCM__)

yazmısşın. Bunun bir de #endif karşılığı olmalı.
Bu if satırını kaldırırsan, bu sorunun ortadan kalkacak.

Ayrıca flex_lcd.c içinde de benzer sorun olabilirdi.

Digimensch

@Ahmets  tesekkürler
belirttigin gibi su satirlari su sekilde yapinca sorun kalkti.
#if defined(__PCM__)
#include <16F84A.h>
#fuses XT,NOPROTECT,NOWDT
#use delay(clock=4000000,RESTART_WDT)
#include "flex_lcd.c"
#endif


yani #endif  ekleyince ok.
ama bu sekilde eski versiyonlarda soun olmuyordu, neden bu versiyonda sorun oldu ki?

mistek

Alıntı yapılan: Digimensch - 02 Mart 2014, 18:01:25
@mistek
funksiyon void ledsinyal() en üsttde duruyor, Prototyp derken ?

Ben karıştırdım kusura bakmayın fonksiyon aşağıda gibi algıladım o yüzden prototip yok demiştim.

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

yldzelektronik

Alıntı yapılan: atomx - 02 Mart 2014, 17:06:01
#include "flex_lcd.c" nedir #include ile header dosyasını eklemen gerekiyor doğrusu #include "flex_lcd.h" olmalı

Buradan anlamamız gereken #include direktifi ile yalnızca .h uzantılı dosyalar dahil edebileceğimiz mi?.c uzantılı dosyaları dahil edemeyecek miyiz?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

muhittin_kaplan

kural 1, Açtığınız her şeyi kapatın.
" ", (), {}, ' ', /* */