Ich habe Frage in Bezug auf die Linie rtc_set_alarm(RTC_0, (RTC[RTC_0].rtc_ccvr + ALARM));
in main()
unten.c Programm - struct Zeiger
Im zweiten Argument von rtc_set_alarm()
verstehe ich RTC
, ein Zeiger von struct
Typ zu sein, der auf die Adresse 0xB0000400 zeigt. Es greift dann auf das erste Mitglied der Struktur zu, indem es .rtc_ccvr
verwendet.
Meine Frage ist, warum ist es notwendig RTC_0
der enum rtc_t
zu verwenden.
Ich würde denken, dass es nur RTC.rtc_ccvr
wäre?
Entschuldigung, ich bin neu zu struct Zeiger.
** Number of RTC controllers. */
typedef enum { RTC_0 = 0, RTC_NUM } rtc_t;
/** RTC register map. */
typedef struct {
RW uint32_t rtc_ccvr; /**< Current Counter Value Register */
RW uint32_t rtc_cmr; /**< Current Match Register */
RW uint32_t rtc_clr; /**< Counter Load Register */
RW uint32_t rtc_ccr; /**< Counter Control Register */
RW uint32_t rtc_stat; /**< Interrupt Status Register */
RW uint32_t rtc_rstat; /**< Interrupt Raw Status Register */
RW uint32_t rtc_eoi; /**< End of Interrupt Register */
RW uint32_t rtc_comp_version; /**< End of Interrupt Register */
} rtc_reg_t;
/* RTC register base address. */
#define RTC_BASE (0xB0000400)
/* RTC register block. */
#define RTC ((rtc_reg_t *)RTC_BASE)
//--------------------------------------------------------------------------
//function declaration
int qm_rtc_set_alarm(const rtc_t rtc, const uint32_t alarm_val)
//--------------------------------------------------------------------------
int main(void)
{
#define ALARM (RTC_ALARM_MINUTE/6)
rtc_set_alarm(RTC_0, (RTC[RTC_0].rtc_ccvr + ALARM));
}
danke für deine antwort. Das erste Register ist 'rtc_ccvr'. Also würde ich des Gedankens mit 'RTC.rtc_ccvr' sicherstellen, dass auf das erste Register zugegriffen wird. @ pm100 schlägt vor, dass es für den RTC-Controller und nicht für das Register verwendet wird? –
@logitech mouse Ich habe den Wortlaut meiner Antwort verbessert - ja, die '0' ist für den Zugriff auf den ersten * Satz * von Registern, das heißt, die Register des ersten Controllers. – DUman
vielen dank für ihre hilfe –