CCS C için farklı değişken atamak

rugan035

Üye
Katılım
5 Nis 2015
Mesajlar
5
Puanları
1
Yaş
38
Arkadaşlar merhaba

CCS C de program yazarken bir yerde takıldım.

Ben iki sayının ortalamasını almak istiyorum. Bunun için iki tane int8 türünde değişkenim var. Bu iki sayıyı aritmetik operatör olarak bölüyorum. Sonucu float olarak başka bir değişkene kaydetmek istiyorum. Sizce nasıl olabilir?

Örnek:

float ortalama;
int8 sayi=0;
int8 a=0;

ortalama=sayi/a;​

Bu şekilde tanımlıyorum fakat olmuyor. Sonucun 0,254 gibi görünmesini istiyorum
 
değişkenlerin hepsini float yapınca oldu...
Kod:
#include <18f4550.h>
#fuses hs,put,nowdt
#use delay(clock=48MHz)

      #define LCD_ENABLE_PIN  PIN_d0                                   
      #define LCD_RS_PIN      PIN_d1                                   
      #define LCD_RW_PIN      PIN_d2                                   
      #define LCD_DATA4       PIN_D4                                   
      #define LCD_DATA5       PIN_D5                                   
      #define LCD_DATA6       PIN_D6                                   
      #define LCD_DATA7       PIN_D7 


#include <lcd.c>
void main()
{
set_tris_d(0x00);
lcd_init();
delay_ms(10);
float a=12.0,b=15.0,c;

      c=(a/b);
     printf(LCD_PUTC, "\f%f",c);
     delay_ms(250);
   while(true)
   {    
   }
}
 
Cevabınız için teşekkür ederim ama değişkenlerim program içinde int olarak görev yapıyor. O yüzden int değerinden float olarak kaydetmek istiyorum
 
böyle oldu galiba :)
Kod:
#include <18f4550.h>
#fuses hs,put,nowdt
#use delay(clock=48MHz)

      #define LCD_ENABLE_PIN  PIN_d0                                 
      #define LCD_RS_PIN      PIN_d1                                 
      #define LCD_RW_PIN      PIN_d2                                 
      #define LCD_DATA4       PIN_D4                                 
      #define LCD_DATA5       PIN_D5                                 
      #define LCD_DATA6       PIN_D6                                 
      #define LCD_DATA7       PIN_D7


#include <lcd.c>
void main()
{
set_tris_d(0x00);
lcd_init();
delay_ms(10);
int a=12,b=15;
float c;



c=(float) a/b;
    printf(LCD_PUTC, "%f",c);
    delay_ms(100);

   while(true)
   {

   }
}
 
Teşekkürler yaptım oldu. Şimdi bu değeri 4x7 segment displayde noktalı olarak göstermem gerekiyor :)
 
diyelimki çıkan değer 1,25 olsun...
bunu önce 100 le çarparım değerim olur 125...
daha sonra basamakları bulurum;
yüzler=sayi/100;
onlar= (sayi/10) %10;
birler= sayi%10;

sonrada tarama metodu ile display e aktarırım...
 

Forum istatistikleri

Konular
128,125
Mesajlar
915,240
Kullanıcılar
449,837
Son üye
betül hüsrevoğlu

Yeni konular

Çevrimiçi üyeler

Geri
Üst