Float değeri ekranda görme sorunu

Başlatan oyhan, 11 Haziran 2008, 03:40:23

oyhan

Merhaba Arkadaşlar
Aşağıdaki kod ile aşağı yukarı butonlarına basınca ekranda okunan değeri
eksiltip azaltıyorum. Eksilip azalan sayı 100'e bölündüğü için 0,01 hassaiyetle lcd ekranında görünüyor. Ancak sayı arttırım ve eksiltimi esnasında şunu farkettim. Mesela 0,06 lcd'de görünmez iken (lcd'de 0,05
yazıyor) seri porttan 6 değerini alıyorum. Bu sayı altı değerine ulaşmasına
karşın neden 100'e bölümünden lcd ekranına 0,06 olarak yazmıyor. Compiler sürümü CCS 3.249.
İyi çalışmalar dileği ile..
#include <18F452.h>
//#device *=16
#device adc=10
#fuses HS, NOWDT, PROTECT, CPD, NOBROWNOUT, NOWRTD, PUT, NOLVP
#use delay(clock = 20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

int8   Set_Cirs;
Set_Cirs=5;

void main()
{  setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL);
   setup_timer_1(T1_DISABLED);
   enable_interrupts(INT_RTCC);
   //enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   set_tris_a(0b00011101); 
   set_adc_channel (0);
  setup_ccp1(CCP_PWM);   // Configure CCP1 as a PWM
   setup_timer_2(T2_DIV_BY_16, 88, 16);   // Setup for 3500 Hz
   set_pwm1_duty(44);                    //  50% duty cycle
   Delay_ms(500);
...
....
....
....
}

while(TRUE)
     {
       lcd_gotoxy(5,2); printf(lcd_putc,"%2.2f",((float)Set_Cirs/100),228);
       if (!YukariBut)
          {Set_Cirs+=1;
           if(Set_Cirs>100) {Set_Cirs=5;}
           lcd_gotoxy(16,2);printf(lcd_putc," ");
          }
       if (!AsagiBut)
          {Set_Cirs-=1;
           if((Set_Cirs>100) || (Set_Cirs<5)) {Set_Cirs=100; }
           lcd_gotoxy(16,2);printf(lcd_putc," ");
          }
       printf("Set_Cirs=%f  \n\r",Set_Cirs);
       delay_ms(200);

     }
BİRLİKTEN KUVVET DOĞAR:

Erol YILMAZ

Bölümden elde edilen sonuca 0.00001 ilave ederseniz
problem çözülüyor mu?

oyhan

Sonuç tamam teşekkürler :)... Fakat neden buna gerek duyuyoruz?
BİRLİKTEN KUVVET DOĞAR:

Erol YILMAZ

CCS ufak bi şaka yapmış işte böle :))))