CCS C fonksiyon kullanımı YARDIM

Başlatan Denizccan, 29 Kasım 2014, 16:00:08

Denizccan

Merhaba

Yazdığım programda sürekli olarak programın değişik bölümlerinde mesafe sensörlerin den veri alıp ekrana yazdırmam gerekiyor. Aynı kodu değişik yerlere kopyalayıp kod uzamasın karışıklık olmasın diyerek bu işlemi fonksyon olarak belirtip istediğim yerden çağırayım dedim ve şu sekilde bir fonksyon tanımladım ama doğruluğundan pek emin değilim bir bakabilirmisiniz acaba bir yerinde bir yanlışlık varmı.

İstediğim mesafeyi ölçsün ekrana yazdırsın mesafe değişkeninin yeni değerini alarak program kaldığı yerden işlemeye devam etsin.
programda
echo == pin_a0
trig   ==pin_a1
zaman   int16 tipinde değişken
mesafe  float tipinde değişken



float olcum()
 {
 output_high(trig);            
 delay_us(20);              
 output_low(trig);   
 while(!input(ECHO))           
 {}   
 set_timer1(0);             
 while(input(ECHO))           
 {} 
 zaman=get_timer1();           
 mesafe=(zaman*10)/(58) ;        
 lcd_gotoxy(1,1);  
 printf(lcd_putc, "\fMesafe :%f",mesafe); 
delay_ms(10);  

 return mesafe;
 }

MrDarK

Fonksiyon doğru görünüyor kurduğun yapıya göre. Fakat yazılımlarda dış ortama gönderilecek şeyler alt programda değil ana programda yaptırılır.

Yani ölçüm sonucunu printf ile ana programında gönder. Sen o fonksiyondan sadece ölçüm sonucu oluşan mesafeyi geri döndür. Döndüğü yerdede printf yaparsın.
Picproje Eğitim Gönüllüleri ~ MrDarK

mir_as82

Hocam float degisken ama sen ona float sayi atayamazsin ki. Zaman değişkenin int, 58 de int. Sonuç int olur.

Denizccan

mir_as82

dediğin doğru orda bi kafam karışmış herhalde şimdi düzeltiyorum orayı.