Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

lcd_gotoxy sorunu

Başlatan xfrieyt, 15 Şubat 2014, 00:34:49

xfrieyt

Arkadaşlar merhaba , sorum olacak size.

4 tane 3 basamaklı float değerim var. lcd yi 4 e bölüp 1=xxx, 2=yyy şeklinde yazdırmak istiyorum. Lakin sadece 1.ve 2. satırın en başından yazıyor veya lcd de hiç bir değişiklik olmuyor. Sebebi nedir acaba bilen var mı ?( Float değişkeni yazdırmasını biliyorum o konuda sıkıntı yok)

ido2323

4 tane 3 basamaklı float değerim var.

kodu bi yaz bakalım

xfrieyt

//Yasin ALYAPRAK

#include <16f877A.h>     
#device ADC=10  // 10 bitlik ADC

#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=20000000)
       
#define LCD_ENABLE_PIN  PIN_E2         //                         
#define LCD_RS_PIN      PIN_E0         //                   
#define LCD_RW_PIN      PIN_E1         //LC                       
#define LCD_DATA4       PIN_D4         //             
#define LCD_DATA5       PIN_D5         //..                           
#define LCD_DATA6       PIN_D6         //..                         
#define LCD_DATA7       PIN_D7         //..                           
#include <lcd.c>                       // l

unsigned long int bilgi,bilgi1,bilgi2,bilgi3;         //
float voltaj,voltaj1,voltaj2,voltaj3,servodigital,brushless,pwm,servoanalog;                    // o





void main ( )
{
   setup_psp(PSP_DISABLED);        //
   setup_spi(SPI_SS_DISABLED);     //
   setup_timer_1(T1_DISABLED);     //
  setup_timer_2(T2_DIV_BY_16,255,1);
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             //
   setup_CCP1(CCP_PWM);            //
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
 
    lcd_init();   
   printf(lcd_veri,"\f CONTROL ");
   delay_ms(5);
   
   setup_adc(adc_clock_div_32);              // ADC clock frekansi fosc/32
   setup_adc_ports(ALL_ANALOG );    // Tüm AN girisleri analog     
                               
   
 
   while(1) // Sonsuz döngü
   {       
      set_adc_channel(1);     // Analog Servo                  // RA1/AN1 ucundaki sinyal A/D islemine tabi tutulacak
   delay_us(20);
   bilgi = read_adc();                          // ADC sonucu okunuyor ve bilgi degişkenine aktariliyor
      voltaj = (0.0048828125 * bilgi);  // Dijitale çevirme işlemine ugrayan sinyalin gerilimi hesaplaniyor
   servoanalog=((voltaj * 370));
   
   output_high(pin_b0);
   delay_ms(servoanalog);
   output_low(pin_b0);
   delay_ms(20);
   
   
   //
   //
   
   set_adc_channel(2);                       // RA1/AN1 ucundaki sinyal A/D islemine tabi tutulacak
   delay_us(50);
    bilgi1 = read_adc();                          // ADC sonucu okunuyor ve bilgi degişkenine aktariliyor
      voltaj1 = 0.0048828125 * bilgi1;  // Dijitale çevirme işlemine ugrayan sinyalin gerilimi hesaplaniyor
  servodigital=((voltaj1 * 200) + 900);
   
   output_high(pin_b1);
   delay_ms(servodigital);
   output_low(pin_b1);
   delay_us(20000-servodigital);
   
   //
   //
   
   set_adc_channel(3);                       // RA1/AN1 ucundaki sinyal A/D islemine tabi tutulacak
   delay_us(50);
    bilgi2 = read_adc();                          // ADC sonucu okunuyor ve bilgi degişkenine aktariliyor
      voltaj2 = 0.0048828125 * bilgi2;  // Dijitale çevirme işlemine ugrayan sinyalin gerilimi hesaplaniyor
   //brushless=((voltaj2 * 200) + 900);
   
   output_high(pin_b2);
   delay_ms(brushless);
   output_low(pin_b2);
   delay_ms(20);
   
   //
   //
   
   set_adc_channel(4);                       // RA1/AN1 ucundaki sinyal A/D islemine tabi tutulacak
   delay_us(50);
    bilgi3 = read_adc();                          // ADC sonucu okunuyor ve bilgi degişkenine aktariliyor
      voltaj3 = (0.0048828125 * bilgi3);  // Dijitale çevirme işlemine ugrayan sinyalin gerilimi hesaplaniyor
   //pwm= ( voltaj3 * 51);
   set_pwm1_duty(pwm)
   
     lcd_gotoxy(1,1);                      //
      printf(lcd_veri,"\n1=%f",servoanalog);    //
      //delay_ms(1000);
      lcd_gotoxy(1,2);                      //
    printf(lcd_veri,"\f2=%f",servodigital);       //
     //delay_ms(1000);
      lcd_gotoxy(9,2);                      //
     printf(lcd_veri,"\f3=%f",brushless);       //
     // delay_ms(1000);
       lcd_gotoxy(9,1);                      // İmlec 2.satır 4.sütunda
    printf(lcd_veri,"\f4=%f",pwm);       // LCD'ye veri yazdırılıyor
      //lcd_gotoxy(1,9);
      delay_ms(100);
      }
}