Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

sorun nerde_?

Başlatan goldberg, 17 Ağustos 2006, 15:55:24

goldberg

arkadaşlar program non-prototyped function declaration for "bit_oku" uyarısını veriyor. hata nerde acaba yardımcı olursanız sevinirim.

#include <pic.h>
#include <delay.c>
#include <lcd.c>
#include <stdio.h>
#define sicakligi_oku 0xAA
#define cevrimi_baslat 0xEE
#define konfig_yaz 0x0C
#define thig 0x01
#define tlow 0x02
#define DQ RB4 
#define CLK RB5
#define RST RB6
void bit_yaz(unsigned char c){
TRISB=0;
DQ=c;
CLK=0;
CLK=1;
DQ=1;
}
void ds1620_bilgi_yaz(unsigned char protokol,unsigned char bilgi,
unsigned char bit_sayisi){ 
unsigned char i,simdiki_bit;
RST=1;
for(i=0;i<8;i++){
simdiki_bit=protokol>>i;
simdiki_bit=simdiki_bit&1;
bit_yaz(simdiki_bit);
}
for(i=0;i<bit_sayisi;i++){
simdiki_bit=bilgi>>i;
simdiki_bit=simdiki_bit&1;
bit_yaz(simdiki_bit);
}
RST=0;
}
unsigned char bit_oku()
 
{
unsigned char c;
TRISB=0x10;
CLK=0;
c=DQ;
CLK=1;
return(c);
}

unsigned int ds1620_bilgi_oku(unsigned char protokol,unsigned char bit_sayisi){
unsigned char i,simdiki_bit;
unsigned int bilgi;
bilgi=0;
RST=1;
for(i=0;i<8;i++){
	simdiki_bit=protokol>>i;
	simdiki_bit=simdiki_bit&1;
	bit_yaz(simdiki_bit);
}	
for(i=0;i<bit_sayisi;i++){
bilgi=bilgi|bit_oku()<<i;
}
RST=0;
return(bilgi);
}
void ds1620_thig(unsigned char s){
ds1620_bilgi_yaz(thig,s,9);
}
void ds1620_tlow(unsigned char s){
ds1620_bilgi_yaz(tlow,s,9);
}
main(void){
	const unsigned char MAX=30;
	const unsigned char MIN=28;
	unsigned char goster[]="SICAKLIK= ";
	unsigned int sicaklik;
	
	TRISB=0x10;
	TRISA=0;
	
	DelayMs(250);
	lcd_init();
	
	lcd_clear();
	
	ds1620_bilgi_yaz(konfig_yaz,2,8);
	ds1620_bilgi_yaz(cevrimi_baslat,0,0);
	ds1620_thig(2*MAX);
	ds1620_tlow(2*MIN);
	
	for(;;)
	{
	sicaklik=ds1620_bilgi_oku(sicakligi_oku,9);
	sicaklik=sicaklik/2;
	sprintf(goster+11,"%d",sicaklik);
	lcd_puts(goster);
	DelayMs(250);
	lcd_clear();
	}
}

kurumahmut

Koda baktım bit_oku fonksiyonun tanımlandıktan sonra kullanıldığı için prototip yapmana gerek yok. Acaba include dosyalarının içinde bunu çağıran bir fonksiyon mu yazdın. İstersen birde include dosyalarından önce bit oku fonk prototipini yaz..

unsigned char bit_oku();
olmazsa
unsigned char bit_oku(void);

yaz....

cramer

evet söylediğini yaptığımda uyarı gidiyor ama hexine baktım 3 satır hex.
Benmi yanlış yapıyorum anlamadım. Acaba zahmet olmazsa birde sen hexe çevirmeyi deneyebilirmisin. Bendeki programda sorun olabilir dün indirmiştim. yani anlıyacağın programın biraz acemisiyim. :oops:

cramer

bu arada cramer de goldberg de benim. birini öbürünün şifresini  unutunca almıştım ama şimdi browser  otomatik olarak rasgele istediği acountla giriyor.  :lol: