Arama butonu
Bu konudaki kullanıcılar: 1 misafir
9
Cevap
799
Tıklama
0
Öne Çıkarma
Ccs C, DS18B20 sorunu
İ
2 yıl
Yarbay
Konu Sahibi

Merhaba. Fidenet Clock ürünü için firmware derlerken üründe bulunan DS18B20 sensör ait fonksiyon olan, ds1820_read() fonksiyonunu çağırınca undefined identifier hatasını alıyorum. Ccs c hata açıklamasında fonksiyonun önündeki aç kapa parantezleri işaret ediyor.

Fonksiyonu çağırdığım şu if ifadesini /* */ ile devre dışı bırakıp compile ettiğimde hata ortadan kalkıyor.

 if ((genCounter % 500)==450) 
      {
         
         temperature = ds1820_read();
         adres(1,3);
         printf(lcd_yaz,"Hava %3.1f%cC",temperature,223);
      }   


quote:

C:\Users\*******\Documents\CCS C Projects\fidenet_clock\fidenet_clock.c" Line 252(35,36): Undefined identifier -- ds1820_read


Ürün bu:
https://fidenetgaraj.blogspot.com/2018/06/masaustu-dijital-saat-yapalm.html?m=1

Sorun nerede acaba?

 
#define ONE_WIRE_PIN PIN_c0
void onewire_reset() {
output_low(ONE_WIRE_PIN);
delay_us( 500 ); //1-wire resetleme için sıfıra çekilir
output_float(ONE_WIRE_PIN); //1-wire bir yapılır
delay_us( 500 );// sensörün hazırlanması için beklenir.
output_float(ONE_WIRE_PIN);
}

void onewire_write(int data)
{
int count;
   for (count=0; count<8; ++count)
   {
   output_low(ONE_WIRE_PIN);
   delay_us( 2 ); // Sensöre yazma işlemine başlamak için  1-wire sıfıra çekilir.
   output_bit(ONE_WIRE_PIN, shift_right(&data,1,0)); // yazılacak bilgi 1-wire'da
   delay_us( 60 ); // Yazma işlemi zamanı doldurulur.
   output_float(ONE_WIRE_PIN); // 1-wire bir yapılır,delay_us( 2 ); // 1us'den fazla beklenir.
   }
}
   
int onewire_read()
{
int count, data;
   for (count=0; count<8; ++count)
   {
   output_low(ONE_WIRE_PIN);
   delay_us( 2 ); //Sensördem okuma işlemi içinl 1-wire sıfıra çekilir.
   output_float(ONE_WIRE_PIN); //1-wire bir yapılır,
   delay_us( 8 ); // Sensörün kendine gelmesi beklenir,
   shift_right(&data,1,input(ONE_WIRE_PIN)); // sonuc bilgisi alınır.
   delay_us( 120 ); //Okuma işlemi zamanı doldurulur.}
   return( data );
   }

float ds1820_read()
{
int8 busy=0, temp1, temp2;
signed int16 temp3;
float result;
onewire_reset();
onewire_write(0xCC);
onewire_write(0x44);
while (busy == 0)
busy = onewire_read();
onewire_reset();
onewire_write(0xCC);
onewire_write(0xBE);
temp1 = onewire_read();
temp2 = onewire_read();
temp3 = make16(temp2, temp1);
result = (float) temp3 / 16.0;delay_ms(200);return(result);
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 4 Mart 2024; 18:54:17 >

< Bu ileti mini sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.