Float değişkeninin ilk basamağını iki basamaklı yapmak.

Haydaa..:) Elimde kütüphaneler olmadığı için ben de deneyememiştim. Kolay bi yolu yok gibi o zaman.
Timur abinin kodları ile yaptım. Sorunsuz çalışıyor. Senin kodları yarın bir daha deneyeceğim. Çok uğraştığımdan beynim sulandı herhalde. Artık oraya sıfırın ascii karşılığını mı yazdırdım, binary mi yazdırdım allah bilir :D
 
Son durum;

Kod:
//// Voltaj değerini ekrana yazdırma /////
  //drawPrnt(u8g2_font_VCR_OSD_tr, 21, 0, 5, 5, 21, "V", buffer, 1);
  int ival = vIN * 100;
  sprintf(buffer, "%02d.%02d\n", ival / 100, ival % 100);
  u8g2.setFont(u8g2_font_VCR_OSD_tr);
  u8g2.drawStr(21, 0, 5);
  u8g2.setCursor(5, 21);
  u8g2.print(buffer);
  u8g2.setCursor(69, 21);
  u8g2.print("V");
  ival = 0;
  /////////////////////////////////////////
  //// Akım Çerçeve ////////////////////////
  drawF(0, 26, 85, 25, 1, 27, 83, 23);
  //////////////////////////////////////////
  //// Amper değerini ekrana yazdırma //////
  double valueI = (I <= 0) ? 00.00 : I;
  ival = valueI * 100;
  sprintf(buffer, "%02d.%02d\n", ival / 100, ival % 100);
  u8g2.setFont(u8g2_font_VCR_OSD_tr);
  u8g2.drawStr(69, 0, 5);
  u8g2.setCursor(5, 47);
  u8g2.print(buffer);
  u8g2.setCursor(69, 47);
  u8g2.print("A");
  /////////////////////////////////////////

20220321_195852.jpg
 
sprintf in sonundaki '\n' karakterlerini de kaldırabilirsin. Ben onu seri monitörde yazdırırken bir sonraki satıra geçsin diye koymuştum. Senin uygulamada bir anlamı yok. O karakter display'e gidiyor gene ama herhalde display "bu ne lan" deyip atıyor :)
 

Çevrimiçi personel

Forum istatistikleri

Konular
8,969
Mesajlar
145,549
Üyeler
3,618
Son üye
Kaşif

Son kaynaklar

Back
Top