Stm32 decimal to hex çevirme

qwertyqwq

Üye
Katılım
30 Tem 2019
Mesajlar
44
Puanları
1
merhaba,

stm32 ile rtc uygulaması yapıyorum fakat bir noktada yardım gerekiyor. Şöyle rtc ile güncel saat ve dakika değerini alıyorum ve bu değerin üzerine giriş şartlandırmasına bağlı olarak 30 dk eklemem gerekiyor. Daha sonra da bu eklenen yeni değeri rtc yi set etmede kullanmak istiyorum. Burada şu işlemi yapıyorum;

minute=gTime.Minutes;
yeniminute = minute + (0x30) ; // burada 30 dk ekleniyor
gAlarm.AlarmTime.Minutes = yeniminute; // burada eklenen dakika alarm olarak set ediliyor.

Burada hata şu ;
minute değeri decimal. Buna ek olarak 30 dk ekleniyor fakat bu değer (decimal) , gAlarm.AlarmTime.Minutes değerine atandığında yine decimal olarak atanıyor ve sonuç yanlış çıkıyor. Bunun için decimal değeri hex çevirme işlemi gerekiyor. Bu konu hakkında bilgisi veya önerisi olan yardımcı olursa sevinirim .

İyi akşamlar
 
merhaba,

stm32 ile rtc uygulaması yapıyorum fakat bir noktada yardım gerekiyor. Şöyle rtc ile güncel saat ve dakika değerini alıyorum ve bu değerin üzerine giriş şartlandırmasına bağlı olarak 30 dk eklemem gerekiyor. Daha sonra da bu eklenen yeni değeri rtc yi set etmede kullanmak istiyorum. Burada şu işlemi yapıyorum;

minute=gTime.Minutes;
yeniminute = minute + (0x30) ; // burada 30 dk ekleniyor
gAlarm.AlarmTime.Minutes = yeniminute; // burada eklenen dakika alarm olarak set ediliyor.

Burada hata şu ;
minute değeri decimal. Buna ek olarak 30 dk ekleniyor fakat bu değer (decimal) , gAlarm.AlarmTime.Minutes değerine atandığında yine decimal olarak atanıyor ve sonuç yanlış çıkıyor. Bunun için decimal değeri hex çevirme işlemi gerekiyor. Bu konu hakkında bilgisi veya önerisi olan yardımcı olursa sevinirim .

İyi akşamlar
Ben anlamam.
Bir sürü yapay zeka uygulaması var onlardan birine sor.
Aşağıdaki üyelik istemiyor.
https://duckduckgo.com/?q=duckduckgo&ia=chat
 
Zaman kütüphanesinin fonksiyonlarını kontrol edin. Belki bu 30 dakikayı saniye veya milisaniye olarak eklemeniz yeterli olabilir.
 
0x30 hex sayısı onluk tabanda/desimal 48'e eşittir.
 
merhaba,

stm32 ile rtc uygulaması yapıyorum fakat bir noktada yardım gerekiyor. Şöyle rtc ile güncel saat ve dakika değerini alıyorum ve bu değerin üzerine giriş şartlandırmasına bağlı olarak 30 dk eklemem gerekiyor. Daha sonra da bu eklenen yeni değeri rtc yi set etmede kullanmak istiyorum. Burada şu işlemi yapıyorum;

minute=gTime.Minutes;
yeniminute = minute + (0x30) ; // burada 30 dk ekleniyor
gAlarm.AlarmTime.Minutes = yeniminute; // burada eklenen dakika alarm olarak set ediliyor.

Burada hata şu ;
minute değeri decimal. Buna ek olarak 30 dk ekleniyor fakat bu değer (decimal) , gAlarm.AlarmTime.Minutes değerine atandığında yine decimal olarak atanıyor ve sonuç yanlış çıkıyor. Bunun için decimal değeri hex çevirme işlemi gerekiyor. Bu konu hakkında bilgisi veya önerisi olan yardımcı olursa sevinirim .

İyi akşamlar

0x30 zaten hex bir değer. minute değişkeni de decimal bir değer tutuyor diyorsunuz. O halde @rsimsek beyin dediği şekilde 0x30 yerine, decimal karşılığı olan 48 eklemeniz problemi gidermiyor mu?
 
Ben fonksiyonu incelemedim. Normalda 0x30 yerini sadece 30 eklenmeli. 0x30 şeklinde hex bir sayı 48 dakika olarak eklenmiş oluyor.
 
Siz zaten yapmışsınız fakat "Decimal" 30 un "Hex" karşolığı 1E dir "0x1E" olarak gösterilir.
Bu çevirici-calculator işinize yarar:

https://www.rapidtables.com/convert/number/decimal-to-hex.html?x=30

Programınızdaki satırı şu şrkilde değişitirebilirsiniz

yeniminute = minute + 0x1E; // 30 (0x1E) dakika eklenir (hex)

Yalnız ilave rutinler gerekir:
Eğer yeniminute 60'ı geçerse, saati de güncellemek gerekir.
ayrıca
Saat 24'ü geçerse 00:00 olarak dönmesi için.rutin yazmanız gerekecek

RTC alarmını ayarlamak için hex formatında dakika değeri kullanılır.
 
Merhaba cevap yazamadım.

Sorunu gettick () ile çözdüm.

İlginize teşekkürler.
 
RTC entegresi varsa bazı kaydediciler bu şekilde olabilir. Ancak hane hane hesaplanıp öyle kaydedilmeli. Mutlaka kataloğuna bakılmalı.
 

Yeni mesajlar

Forum istatistikleri

Konular
130,109
Mesajlar
933,220
Kullanıcılar
453,166
Son üye
ahmetemreerdem

Yeni konular

Geri
Üst