Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: Analog - 02 Eylül 2018, 03:16:18

Başlık: assert_param(); nedir?
Gönderen: Analog - 02 Eylül 2018, 03:16:18
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
Başlık: Ynt: assert_param(); nedir?
Gönderen: sımışka - 04 Ekim 2018, 12:14:25
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.
Başlık: Ynt: assert_param(); nedir?
Gönderen: OptimusPrime - 04 Ekim 2018, 19:11:20
C deki karsiligi assert(). Bir cesit hata ayiklama mekanizmasi.
Başlık: Ynt: assert_param(); nedir?
Gönderen: yldzelektronik - 04 Ekim 2018, 19:31:07
Argümanın false değer alması durumunda mı, true değer alması durumunda mı tetiklenir?
Başlık: Ynt: assert_param(); nedir?
Gönderen: OptimusPrime - 04 Ekim 2018, 20:11:25
Standart C gore false olmasi lazim.