CCS' de LCD titreme problemi

Başlatan Elektron74, 20 Kasım 2007, 21:43:07

Elektron74

#include <16f877A.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#device ADC=10  // 10 bitlik ADC kullanılacağı belirtiliyor.

// Denetleyici konfigürasyon ayarları
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=8000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor

unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj;            // ondalıklı tipte voltaj isminde değişken tanıtılıyor

//********** ANA PROGRAM FONKSİYONU*******

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   setup_adc(adc_clock_internal);   // ADC clock frekansı internal RC
   setup_adc_ports(ALL_ANALOG);   // Tüm AN girişleri analog

   lcd_init();                            // LCD hazır hale getiriliyor
   printf(lcd_putc,"\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor
   delay_ms(1500);
   while(1)   // sonsuz döngü
   {
      set_adc_channel(2);   // AN2 ucundaki sinyal A/D işlemine tabi tutulacak
      delay_us(20);         // Kanal seçiminde sonra bu bekleme süresi verilmelidir
      bilgi=read_adc();     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

      voltaj=0.0048828125*bilgi;   // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
      printf(lcd_putc,"\f Dijital=%lu",bilgi); // AN2 ucundaki sinyalin dijital karşılığı LCD'ye aktarılıyor
      printf(lcd_putc,"\n Voltaj=%f V   ",voltaj); // AN2 ucundaki sinyalin gerilim değeri LCD'ye aktarılıyor
      delay_ms(100);     

   }
}

@ DEVICE Pic16F877A
@ DEVICE pic16F877A, WDT_OFF
@ DEVICE pic16F877A, HS_OSC   
@ DEVICE pic16F877A, BOD_OFF  ;BROWN OUT DETECT    
@ DEVICE pic16F877A, LVP_OFF
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, PWRT_OFF
DEFINE OSC8
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
dEFINE LCD_LINES 2
define adc_bits 10 ' 10 bitlik A/S çevirici seçildi
define adc_clock 3 ' 3. modda çalışılacak
define adc_sampleus 50 ' 50 mikro saniye örnekleme süresi
toplam var word
onlar var word
birler var word

   
    trisa  =%11111111 ' A portu analog giriş seçildi
    adcon1 =%10000010 ' A/S çevirici konfigürasyonu
    
    Lcdout $Fe, 1,$fe,2,"Design By:"
    Lcdout $Fe,$C0," <Elektron74> "
    pause 5000
Basla:
    adcin 2 ,toplam 'port A.2'dan veri alındı
    onlar= toplam*1/205 ' toplam1‘ in ortalamasını al.10luk olarak yaz
    birler=(100*(toplam//205))/205  
    Lcdout $Fe, 1,$fe,2," <ADC UYGULAMASI> "
    Lcdout $Fe,$C0,"Voltage:",dec onlar,".",dec birler, " ","V"             
    pause 50
    goto Basla
    end

   Arkadaşlar yukarda CCS' de ve PicBasic Pro' da yazılmış Port A2 ucundaki gerilimi ölçen bir ADC örneği verdim. PicBasic Pro 'da LCD de hiç bir titreme yokken aynı programı CCS' de yazdım uyguladım. LCD de titreme var. CCS'de yazdığım programda LCD ye yazma işleminden sonra kullandığım delay_ms(100);  komutundaki gecikme değerini ne kadar  değiştirdi isem kar etmedi. printf(lcd_putc,"\f Dijital=%lu",bilgi);  bu satırdaki ekranı silme komutu (\f) işi karıştırıyor. İşlemci bu satırı işledikden sonra geri ekranı yazana kadar ekranda bir dalgalanma oluşuyor. Yani geri yazma işlemi yavaş yapılıyor. Eğer hızlı yazabilse insan gözü bunu fark edemeyecek. Oysa ki  PicBasic Pro daki programda LCD de zerre kadar titreme yok. Programlar incelenirse PicBasic Pro' daki  programda da ekranın sürekli yazılıp silindiği görülmektedir. İki programında yaptığı iş aynı. Ben CCS'nin PicBasic Pro ya göre daha hızlı olduğunu duymuştum, ama her nedense bu problemle karşı karşıya kaldım. Daha önce PicBasic Pro kullanıyordum. Daha sonra CCS kullanmaya karar verdim.  Verdiğim program parçaları gayet kısa arkadaşlar inceleyip bir yardımcı olursanız sevinirim.
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

arslan74

ADC işlemleri için float kullanmaz işlem hızını etkiler. onun yerine int türünden işlem yapın, hızı cok etkiler.
LCD bilgi yazmak için sprintf fazla kullanmayın.

Örneğin

printf(lcd_putc,"\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor


yerine direkt

lcd_putc("\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor


yazdırın ekrana zaten hazır ascii kodlar yaziyorsunuz.


Birde aşağıda şu kod var;

printf(lcd_putc,"\n Voltaj=%f V   ",voltaj);


Burada bu şekilde yazmanız gerkmiyormu ?

sprintf(lcd_putc,"\n Voltaj=%f V   ",voltaj);


Selamlar

Ersin

Alıntı Yapdelay_ms(100);    

Burdaki degeri degistir

Elektron74

@Ersin ve @arslan74 hocam öncelikle ilginize teşekkürler.
Alıntı yapılan: "arslan74"ADC işlemleri için float kullanmaz işlem hızını etkiler. onun yerine int türünden işlem yapın, hızı cok etkiler..
Demişsiniz. Bende bunun üzerine PicBasic pro' daki yazdığım mantıkla aynı olacak şekilde CCS'de aşağıdaki kodları yazıp denedim. Ama sonuç değişmedi.  :( Bir türlü nedenini bulamıyorum. Ekran temizleme işlemi yapılmadığı zaman LCD de kırpma olmuyor. Ama ekranın temizlenmesi de gerekiyor. Daha önce belirttiğim gibi ekran temizlendikden sonra ekrana bilgi hemen yazdırılamıyor.
#include <16f877A.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#device ADC=10  // 10 bitlik ADC kullanılacağı belirtiliyor.

// Denetleyici konfigürasyon ayarları
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=8000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor
 unsigned long int bilgi,onlar,birler;
  // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor

//********** ANA PROGRAM FONKSİYONU*******

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   setup_adc(adc_clock_internal);   // ADC clock frekansı fosc/32
   setup_adc_ports(ALL_ANALOG);   // Tüm AN girişleri analog

   lcd_init();                            // LCD hazır hale getiriliyor
   delay_ms(6);
   lcd_putc("\f ADC UYGULAMASI ");
   //printf(lcd_putc,"\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor
   delay_ms(1500);
   while(1)   // sonsuz döngü
   {
      set_adc_channel(2);   // AN2 ucundaki sinyal A/D işlemine tabi tutulacak
      delay_us(20);         // Kanal seçiminde sonra bu bekleme süresi verilmelidir
      bilgi=read_adc();     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
      onlar= bilgi*1/205;   
      birler=(100*(bilgi%205))/205;  
      printf(lcd_putc,"\f Voltaj=%ld.%ld V ",onlar,birler); // AN2 ucundaki sinyalin gerilim değeri LCD'ye aktarılıyor
      delay_ms(100);     
   }
}

Alıntı yapılan: "arslan74"
printf(lcd_putc,"\n Voltaj=%f V   ",voltaj);


Burada bu şekilde yazmanız gerkmiyormu ?

sprintf(lcd_putc,"\n Voltaj=%f V   ",voltaj);

sprintf(lcd_putc,"\n Voltaj=%f V   ",voltaj); Bu komutu denedim. Ekrana hiç bir şey yazılmıyor. CCS nin LCD ile ilgili örneklerine baktığımda komut yapısı
printf(lcd_putc,"\n Voltaj=%f V   ",voltaj);
bu örnekdeki gibi. kullanmışlar.
 Fakat aşağıda verdiğiniz kod çalışıyor. Ekrana "ADC UYGULAMASI" bilgisini yazdırıyor.
Alıntı yapılan: "arslan74"
lcd_putc("\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

Elektron74

@Ersin ve @arslan74 hocam öncelikle ilginize teşekkürler.
Alıntı yapılan: "arslan74"ADC işlemleri için float kullanmaz işlem hızını etkiler. onun yerine int türünden işlem yapın, hızı cok etkiler..
Demişsiniz. Bende bunun üzerine PicBasic pro' daki yazdığım mantıkla aynı olacak şekilde CCS'de aşağıdaki kodları yazıp denedim. Ama sonuç değişmedi.  :( Bir türlü nedenini bulamıyorum. Ekran temizleme işlemi yapılmadığı zaman LCD de kırpma olmuyor. Ama ekranın temizlenmesi de gerekiyor. Daha önce belirttiğim gibi ekran temizlendikden sonra ekrana bilgi hemen yazdırılamıyor.
#include <16f877A.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#device ADC=10  // 10 bitlik ADC kullanılacağı belirtiliyor.

// Denetleyici konfigürasyon ayarları
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=8000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor
 unsigned long int bilgi,onlar,birler;
  // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor

//********** ANA PROGRAM FONKSİYONU*******

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   setup_adc(adc_clock_internal);   // ADC clock frekansı fosc/32
   setup_adc_ports(ALL_ANALOG);   // Tüm AN girişleri analog

   lcd_init();                            // LCD hazır hale getiriliyor
   delay_ms(6);
   lcd_putc("\f ADC UYGULAMASI ");
   //printf(lcd_putc,"\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor
   delay_ms(1500);
   while(1)   // sonsuz döngü
   {
      set_adc_channel(2);   // AN2 ucundaki sinyal A/D işlemine tabi tutulacak
      delay_us(20);         // Kanal seçiminde sonra bu bekleme süresi verilmelidir
      bilgi=read_adc();     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
      onlar= bilgi*1/205;   
      birler=(100*(bilgi%205))/205;  
      printf(lcd_putc,"\f Voltaj=%ld.%ld V ",onlar,birler); // AN2 ucundaki sinyalin gerilim değeri LCD'ye aktarılıyor
      delay_ms(100);     
   }
}

Alıntı yapılan: "arslan74"
printf(lcd_putc,"\n Voltaj=%f V   ",voltaj);


Burada bu şekilde yazmanız gerkmiyormu ?

sprintf(lcd_putc,"\n Voltaj=%f V   ",voltaj);

sprintf(lcd_putc,"\n Voltaj=%f V   ",voltaj); Bu komutu denedim. Ekrana hiç bir şey yazılmıyor. CCS nin LCD ile ilgili örneklerine baktığımda komut yapısı
printf(lcd_putc,"\n Voltaj=%f V   ",voltaj);
bu örnekdeki gibi. kullanmışlar.
 Fakat aşağıda verdiğiniz kod çalışıyor. Ekrana "ADC UYGULAMASI" bilgisini yazdırıyor.
Alıntı yapılan: "arslan74"
lcd_putc("\f ADC UYGULAMASI "); // LCD'ye yazı yazdırılıyor
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

gallavi

Sanırım o gecikme printf deki \f komutundan oluyo onu yerine satırın başına gidip yeni yazılması gereken karakterleri veya boş karakterleri yazmak daha iyi sonuç verir satır başına gitmek için lcd_gotoxy(satır,sütun); komutunu kullanmak gerek ama bende bu komut düzgün çalışmadı bende lcd.c dosyasının bi kopyasını proje klasörüne kopyalayıp fonksyonu aşağıdaki gibi değiştirdim. lcd.c dosyasının adınıda lcd.h olarak değiştirip #include "lcd.h" şeklinde yüklersen picc klasöründeki orjinal dosya yerine proje klasöründeki dosyayı kullanır.




void lcd_gotoxy( BYTE x, BYTE y) {
  BYTE address;

address=64*y+x;

  lcd_send_byte(0,0x80|address);
}
DemirHan=gallavi;

Elektron74

@gallavi
Bence halısın.printf deki \f silme komutu ekranın kırpmasına sebep oluyor. \f komutunu sildiğimde @gallavi arkadaşın dediği gibi satır başına gidip tekrar ekran yazıldığında problem kalkıyor. Aşağıdaki CCS kodları ile ekranda hiç dalgalanma olmadan yazı okunuyor. Problem çözüldü. Fakat ben bu işi yine anlamadım. PicBasic proda ekranı sildirip yazdırıyorum hiç ekranda dalgalanma yok. Oysa ki hızlı denen CCS 'de ekran silme işlemine tabi tutulduğunda dalgalanma oluyor. Tüm hayallerimi yıktı bu CCS. :cry:
#include <16f877A.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#device ADC=10  // 10 bitlik ADC kullanılacağı belirtiliyor.

// Denetleyici konfigürasyon ayarları
#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=8000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd.c>   // lcd.c dosyası tanıtılıyor
unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj;            // ondalıklı tipte voltaj isminde değişken tanıtılıyor

//********** ANA PROGRAM FONKSİYONU*******

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

   setup_adc(adc_clock_internal);   // ADC clock frekansı fosc/32
   setup_adc_ports(ALL_ANALOG);   // Tüm AN girişleri analog

   lcd_init();                            // LCD hazır hale getiriliyor
   delay_ms(6);
   lcd_putc("\f ADC UYGULAMASI ");
   delay_ms(1500);
   printf(lcd_putc,"\f");
   while(1)   // sonsuz döngü
   {
      set_adc_channel(2);   // AN2 ucundaki sinyal A/D işlemine tabi tutulacak
      delay_us(20);         // Kanal seçiminde sonra bu bekleme süresi verilmelidir
      bilgi=read_adc();     // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor
      voltaj=0.0048828125*bilgi;   // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor
      lcd_gotoxy(1,1);
      printf(lcd_putc," Dijital=%lu   ",bilgi);// AN2 ucundaki sinyalin dijital karşılığı LCD'ye aktarılıyor
      lcd_gotoxy(1,2);
      printf(lcd_putc," Voltaj=%fV   ",voltaj);// AN2 ucundaki sinyalin gerilim değeri LCD'ye aktarılıyor
   }
}
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

Erol YILMAZ

CCS de beğenmediğiniz dahili fonksiyonun yerine ASM deki karşılığını yazıp bu problemi rahatlıkla aşabilirsiniz.

HAFTANIN SLOGANI

"Hayalleri yıkmayan derleyici: CCS !"
:D

Elektron74

@Erol
Hocam bırak dalga geçmeyi. Sizin bu \f silme komutu ile ilgili yorumunuz nedir? Biz ASM de uzun kod yazmaktan kaçmak için PicBasic Pro ya geçtik. PicBasic Pro yavaş kalıyor diye CCS öğrenmeye başladım. CCS de istediğim gibi çıkmadı.  Ya da biz işin inceliklerini bilmiyoruz. Dediğim gibi problemi çözdüm ama benim istediğim gibi çözülmedi.
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

Erol YILMAZ

Problemin üstüne doğru git,
Üretilen kodları incele bakalım, CCS ne yapıyor da bekliyor /f ile...
Belki de LCD den bir onay bekliyordur ?
Basic tipi derleyici bu onayı beklemeden geçiyor olabilir.
[Bakınız: LST dosyası]

Elbette zamanla işin inceliklerini öğreneceksin, öğreneceğiz.
Mesela sadece değişen yerleri LCD de güncellemek te bunlardan birisi.
Ayrıca kesinlikle ASM yi unutacak düzeyde yuksek seviyeli dile bağımlı
kalmamanızı hatta ara sıra ASM de olsa nasıl yapardım
diye beyin jimnastiği yapmanızı  tavsiye ederim.

Aç bi parantez ( Hoca camide ! :D )

Elektron74

@Erol
İyi bakalım. Anlaşılan siz bu gün espiri modundasınız.  LST dosyasına baktım fakat çok karmaşık çözülecek gibi değil.
  Arkadaşlar daha önce kimsenin başına gelmedimi bu problem?
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

arslan74

Merhaba,

sorunun en basit cözümü printf ile lcd_putc fonksiyonun birbirlerine ilişkindirmemekten geciyor.

Onu söyle yapabilirdin.

printf(lcd_putc," Voltaj=%fV   ",voltaj);// AN2 ucundaki sinyalin gerilim değeri LCD'ye aktarılıyor


yerine dir dizi tanımla

unsigned char yazi[20]={0};

sprintf(yazi," Voltaj=%fV   ",voltaj);// AN2 ucundaki sinyalin gerilim 

lcd_putc( yazi );


şeklinde yazarsan hiç bir problem yaşamassın.

Eğer yine olmadı dersen o zaman CCS yi cöpe at, başka C derleyici kullan. Ama kesinlikle C derleyicilerini Basic'le kıyaslama, C bu iş için bicilmiş bir dildir. C dilinden vaz gecme.

Selamlar

Elektron74

@arslan74
Kesinlikle C dilinin Basic diline  göre üstün olduğuna  inadığım için CCS ye geçtim. Onda şüpem yok. Ama malesef istediğim işlemi yapamayınca insanın morali bozuluyor. Anlantığınızı deneyeceğim. Ama ben sprintf()fonksiyonunu bilmiyorm. Biraz bilgi verirmisiniz?
Selamlar.
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.

arslan74

Alıntı yapılan: "Elektron74"@arslan74
Kesinlikle C dilinin Basic diline  göre üstün olduğuna  inadığım için CCS ye geçtim. Onda şüpem yok. Ama malesef istediğim işlemi yapamayınca insanın morali bozuluyor. Anlantığınızı deneyeceğim. Ama ben sprintf()fonksiyonunu bilmiyorm. Biraz bilgi verirmisiniz?
Selamlar.

Merhaba,

sprintf aynı printf gibi kullanılır. Yanlız burada fark şu sprintf de bilginin nereye yani hangi kaynağı yazılacağınıda belirtiyorsun. Oysa printf ise kaynak belli bir yere yazma yapiyorsun, tabi bu kaynağı değiştirme imkanında var, sprintf de ki gibi fonksiyon içinde kaynağı belirtmiyorsun.
O yüzden printf fonksiyonunda 3 parametre gecmişsin, bende burada o yüzden spintf kullanman gerekmiyormu diye belirttim.

CCS coğu zaman standart C dilinin kurallarının dışına cıkıyor, printf fonksiyonun hem iki, hemde üç parametreleri kullanma imkanı veriyor. Standart C nin kurallarında buna imkan yok. 3 paratmetre kullanacağın zaman sprintf fonksiyonunu kullanırsın.

aynı isimle değişik parametrelerle fonksiyon çağırma olayı C++ dilinde var. Onada fonksiyon overloading deniyor.

Aslında printf CCS bir fonksiyon değil,  "pusedo macro", içine yazdığına göre sana bir fonksiyon üretiyor, yani bir ceşit komut gibi kullanmışlar.

Ansi C standartlarında yazmak için CCS derleyicini onu belirtmen gerek.

Selamlar

Elektron74

@arslan74
Merhaba;
Verdiğiniz kodları denedim malesef çözüm olmadı. Ekranda  "&" işareti yazıyor.Yani yazi içine gönderilen voltaj değeri çıkmadı.

Selamlar...
Yarın; yorgun kimselerin değil rahatlarına kıyabilenlerindir.