01 Aralık 2021, 18:17:07

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


assert_param(); nedir?

Başlatan Analog, 02 Eylül 2018, 03:16:18

Analog

Merhaba

Kodlarımızı yazarken kullandığımız fonksiyonların .c dosyasında içine baktığımız zaman assert_param(); ı görüyoruz. Mesela I2C_GenerateSTART(); fonk. bakalım

void I2C_GenerateSTART(I2C_TypeDefI2CxFunctionalState NewState)
{
  
/* Check the parameters */
  
assert_param(IS_I2C_ALL_PERIPH(I2Cx));
  
assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (
NewState != DISABLE)
  {
    
/* Generate a START condition */
    
I2Cx->CR1 |= I2C_CR1_START;
  }
  else
  {
    
/* Disable the START condition generation */
    
I2Cx->CR1 &= (uint16_t)~((uint16_t)I2C_CR1_START);
  }
}

burada assert_param(); olayı neden var daha doğrusu ne işe yaradığını bilmiyorum. Açıklayan olursa sevinirim

sımışka

conf.h kütüphanesi içerisinde tanımlanan bir makro aslında.(#define USE_FULL_ASSERT 1)

Argüman olarak aldığı ifadenin doğruluk durumuna bağlı olarak hatalı olup olmadığı mesaj almayı sağlayan fonksiyondur.

Argümanın false değer alması durumunda hata mesajı yazdırır ve abort fonksiyonu ile programı sonlandırmayı sağlamaktadır.

OptimusPrime

C deki karsiligi assert(). Bir cesit hata ayiklama mekanizmasi.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

yldzelektronik

Argümanın false değer alması durumunda mı, true değer alması durumunda mı tetiklenir?
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

OptimusPrime

Standart C gore false olmasi lazim.
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.