Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: Zakkum2014 - 30 Ekim 2018, 23:17:34

Başlık: Değişkenler
Gönderen: Zakkum2014 - 30 Ekim 2018, 23:17:34
Arkadaşlar  float değişkenini sensör uygulamasında kullanırken aynı float değişkenini sensörün set değerini arttır ve eksilt yapılabilirmi. Lcd ekran üzerinde gösterilecek
Başlık: Ynt: Değişkenler
Gönderen: ziyaretci - 31 Ekim 2018, 19:05:54
-Bir tane sensör var.
-Sana veri geliyor.
-Sen bu veriyi alıyorsun.
-Float bir değişkene yazıyorsun.
-Ve bu float değişkeni...aesnsjsyyr
-jndbehskdidhsk
-LCD'ye yazıyorsun.

1)Sensörün set değerinden kastın nedir?

2)Sensörden gelen veriyi kaydettiğin float değişkenin değiştirilip değiştirilemeyeceğini mi soruyorsun?
-Evet, veri değiştirilebilir. Değiştirdiğin veriyi LCD'ye basabilirsin.

3)Sensörden gelen bilginin bulunduğu değişkeni değiştirerek, sensördeki bir ayarı yapabilir miyim diye mi soruyorsun?
-Belirsiz, bu iletişim protokolü dahilinde değildir muhtemelen. Sürücü dosyasına bakmak lazım. Sensörden veri yine aynı gelir, çıkışı sen istediğin oranda ve doğrultuda büyütüp, küçültebilirsin. Tabi matematiksel olarak.

4)Sensör ne sensörü?
-3. sorunun cevabını netleştirecek.
Başlık: Ynt: Değişkenler
Gönderen: Zakkum2014 - 31 Ekim 2018, 19:25:26
Lm35 veya ntc tipi 
Printf(lcd_putc, "sicaklik: %f"set)
if(input(yukari)&&(set<100))set=set+1:
if(input(asagi)&&(set>0))set=set-1:


Burda lcd ekranda çıkan sonuç sicaklik : 131.0
Değişken Float sicaklik; yani anlatmak istediğim 
Set değerini 0.5 oranında değiştirmek yukarı aşağı
Başlık: Ynt: Değişkenler
Gönderen: ziyaretci - 01 Kasım 2018, 00:30:34
Alıntı yapılan: Zakkum2014 - 31 Ekim 2018, 19:25:26Lm35 veya ntc tipi
Printf(lcd_putc, "sicaklik: %f",set)
if(input(yukari)&&(set<100))set=set+1:
if(input(asagi)&&(set>0))set=set-1:


Burda lcd ekranda çıkan sonuç sicaklik : 131.0
Değişken Float sicaklik; yani anlatmak istediğim
Set değerini 0.5 oranında değiştirmek yukarı aşağı

Demek istediğini pek anlayamadım. Buradan yapmak istediğin eylemi söyle ki bizde anlayalım. Bu bir menü ayarı mı olacak?

if(input(yukari)&&(set<100))set+=0.5;
if(input(asagi)&&(set>0))set-=0.5;
Printf(lcd_putc, "sicaklik: %f",set);

Belirsiz bir soru soruyorsun. Hani soru belirsiz. İlginç.

Genel bir cevap vereyim. Eğer o veriyi bir bilgisayara(MCU) aldıysan, hafızaya koyduysan o verinin içinden geçersin. Kısacası ne istersen yapabilirsin.
Başlık: Ynt: Değişkenler
Gönderen: RaMu - 01 Kasım 2018, 00:37:29
float set=50;
Printf(lcd_putc, "sicaklik: %f,set:%f")
if(input(yukari)&&(set<100))set=set+0.5:
if(input(asagi)&&(set>0.5))set=set-0.5:



Gibi bir mantıkla olur.

Kod satırlarının sonunda neden iki nokta var?
printf yazım formatıda farklı geldi bana.
Yapamazsan CcsC için derlenir halinide yazarım.
Başlık: Ynt: Değişkenler
Gönderen: Zakkum2014 - 01 Kasım 2018, 07:05:31
Evet bir menü içinde, bu bir bina içinde ısı ölçme ve havalandırma biraz kilima gibi ama değil sade bir tasarım set değerine ulaşınca röle kontrolü yapıyor aslında kodu %d  olarak yazarsak sorun yok da ben biraz takıntı yaptım, küsüratlı olsun istedim sizlere sorum o şekildeydi. Evet kodu telefon üzerinden yazarken hata iki nokta yazılmış siz yazınca fark ettim ccs c de zaten işlem sonucunda derleme ye izin vermez.
Başlık: Ynt: Değişkenler
Gönderen: ziyaretci - 01 Kasım 2018, 20:47:22
Yani sen sensörden gelen veri ile menüdeki değeri karşılaştırıp sonuca göre işlem yapacaksın. Gelen veriyi ADC yapıp karşılaştırma yapıyorsun. Ama bana ADC den tam sayı geliyor ama ben bu değeri float'a çevirip, menüdende onlalık ayar yapmak istiyorum diyorsun.

#device adc=8
unsigned int8 set=0; // adc verisi
Float menu_ayari=0, tek_hesap=0; 

Void main()
{
   For(;;)
   {
      if(buton1) //arttır
      {
        While(buton1);
        delay_ms(20);
        if(menu_ayari!=255.0)
          Menu_ayari+=0.5;
      }

      if(buton2) //azalt
      {
        While(buton2);
        delay_ms(20);
        if(menu_ayari!=0)
          Menu_ayari-=0.5;
      }

      Set = read_adc();

      Tek_hesap = (float)((1.0*set)/10);

      Printf(lcd_putc,"\fset: %0.2f", tek_hesap);

      if(menu_ayari < tek_hesap)
      {
        // blok1
      }
      Else
      {
         // blok 2
      }
   }
}
Başlık: Ynt: Değişkenler
Gönderen: Zakkum2014 - 02 Kasım 2018, 06:30:02
Evet