pointer sorusu - yardım

Başlatan magnetron, 27 Ocak 2021, 21:35:45

magnetron

merhaba forum

HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)

bu SetTime fonksiyonu çağırırken HAL_RTC_SetTime(&hrtc, ......... şeklinde çağırıyorum

aynı fonksiyon içinde
uint32_t RTC_ReadTimeCounter(RTC_HandleTypeDef *hrtc)
tanımlı fonksiyon çağrılıyor

bu durumda     Time_Display(RTC_ReadTimeCounter(hrtc)); mi yoksa Time_Display(RTC_ReadTimeCounter(&hrtc));şeklinde mi çağırıcam ?

kafam karıştı bi yardım - teşekkür

brandice5

hrtc zaten pointer olduğu için RTC_ReadTimeCounter(hrtc) olması lazım.

Emre_Tuncay_

hrtc hal kütüphanesi ile tanımlı bir değişken diye tahmin ediyorum. huart, hspi gibi.
Böyleyse hrtc bir değişkendir bir pointer değildir. Dolayısıyla &hrtc diye kullanmalısınız.

brandice5

#3
Kodun tamami olmadigi icin anlamasi zor ama benim  anladigim, soyle birsey;

HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
{
...
    Time_Display(RTC_ReadTimeCounter(hrtc));
...
}
int main()
{
    RTC_HandleTypeDef hrtc;
    HAL_RTC_SetTime(&hrtc, ........)
    return 0;
}

Burada HAL_RTC_SetTime icindeki hrtc parametresi zaten pointer oldugu icin, bu fonksiyonun icinde tekrar pointerin adresini almaya gerek yok. Dolayisiyla RTC_ReadTimeCounter(hrtc) olacak.

&hrtc pointerin pointeri olur ve hrtc degiskeni yerine bellekteki baska bir yere erismis olursunuz.


magnetron

@brandice5 hocam anladığınız gibi - teşekkür ederim

bu şekilde çalıştı

Emre_Tuncay_

Evet ben yanlış yönlendirmişim. Sorunuzu yanlış anladım sanırım. Kusura bakmayın.

magnetron

teşekkür ederim hocam cevap yazdığınız için kusura bakılacak bişey yok ben tam bilgi verememişim