Hoş Geldin, Mühendis!

Tüm mühendislerin ve mühendis adaylarının yer aldığı forum sayfamıza kayıt olmalısınız. Kayıt olduktan sonra tüm ders notlarına, teknik dokümanlara erişim sağlayabilecek, sorularınızı sorup cevaplar verebileceksiniz. Sitemiz tamamiyle ücretsiz olmakla birlikte Mühendis Puanı sistemi uygulamaktadır.

Bilgi paylaştıkça çoğalır.

Premium Abonelik 📢

Premium abonelik ile sitemizi reklamsız gezebilir, dosyaları sınırsızca indirebilirsiniz.

Daha Fazlası

[Muhendisiz.NET] Tekrar Sizlerleyiz! 🎭

Mühendisiz.NET sitesi forum ve blog sayfası olarak tekrar yayın hayatına başladı. 🤩 Sizlerde forum sayfamıza üye olabilir ve mühendis topluluğumuza katılabilirsiniz.

Daha Fazlası

Mühendis Puanı Sistemi🏆

Bilgi paylaştıkça çoğalır felsefesini benimsemiş olmamız nedeniyle Mühendis Puanı sistemini uygulamaya aldık. Dökümanları indirebilmek için bazı paylaşımlarda bulunmalısınız. 📨

Daha Fazlası
  • Dosya indirebilmek için 2 Mühendis Puanına ihtiyacınız var. Konuya yorum atarak 1 MP Not paylaşarak 6 MP kazanırsınız.
    Bilgi Paylaştıkça Çoğalır. (Mühendislik Puanı (MP) Nedir?)
  • Mühendis Puanı kazanmaya vakti olmayanlar için ücretli premium üyelik sistemi aktif edilmiştir.
    (Premium Üyelik SATIN AL)

STM32'de ondalık sayıyı hekzadesimale çevirme

dilek

Mühendis
Katılım
2 May 2020
Mesajlar
7
Mühendis Puanı
19
BÖLÜM
Endüstri Müh
STM32 ile bir RTC uygulaması üzerinde çalışıyorum ve bir sorunla karşılaştım. RTC'den güncel saat ve dakika değerlerini alıyorum ve bu değere giriş koşuluna bağlı olarak 45 dakika eklemem gerekiyor. Sonrasında bu yeni değeri RTC'yi ayarlamak için kullanacağım. Şu işlemi yapıyorum:

minute = gTime.Minutes;
yeniminute = minute + (0x45); // Burada 45 dakika ekleniyor
gAlarm.AlarmTime.Minutes = yeniminute; // Eklenen dakika alarm olarak ayarlanıyor.

Sorun şu: minute değeri ondalık. 45 dakika ekliyorum fakat bu ondalık değer, gAlarm.AlarmTime.Minutes'e atandığında yine ondalık olarak atanıyor ve sonuç yanlış çıkıyor. Ondalık değeri hekzadesimale çevirmem gerekiyor. Bu konuda yardımcı olabilirseniz sevinirim.

gAlarm.AlarmTime.Minutes değişkeninin veri tipi muhtemelen uint8_t veya benzeri bir tür. Bu yüzden, 45'i ondalık olarak ekleyip, sonrasında hekzadesimale çevirmeye gerek yok. Eğer yeniminute değeri 60'ı aşıyorsa, saat değişkenini de güncellemeniz gerekecektir. Örneğin, 45 dakika ekledikten sonra, yeniminute değeri 60'tan büyükse, saat değişkenine 1 ekleyip, yeniminute değerinden 60 çıkarmalısınız. Bu şekilde doğru bir şekilde alarmı ayarlayabilirsiniz.
 

Son kaynaklar