پاسخ : کامپایلر IAR
سلام دوباره
دوستان من هنگ کردم، جناب طراح لطفا راهنماییم کنید. من به جز اینجا منبع دیگه ای ندارم که اشکالاتم رو برطرف کنم.
علاوه بر سوالات پست قبلی با کلی سوال دیگه مواجه شدم، من فایل ATxmega16A4.h در پروژم رو باز کردم، برای هر قسمت یک ستراکچر تعریف کرده، مثلا برای ADC :
ADC_t اسم این متغیری هس که تعریف شده؟
register8_t یعنی چی؟
این متغیرهایی که داخل استراکچر تعریف شده، در واقع به رجیسترهای ADC مرتبط میشن؟
چرا با اسم ADC_t تعریف شده؟
این خط که ظاهرا بین ADCA و ADC_t ارتباط برقرار میکنه، میش توضیح بدین؟
در نهایت هم یکسری متغیرهایی تعریف کرده بصورت زیر
میدونم که انتظار توضیح همه اینها، انتظار زیادی هست، ولی اگر براتون مقدوره راهنماییم کنین یا یک رفرنس مناسبی معرفی کنین برام.
با تشکر
سلام دوباره
دوستان من هنگ کردم، جناب طراح لطفا راهنماییم کنید. من به جز اینجا منبع دیگه ای ندارم که اشکالاتم رو برطرف کنم.
علاوه بر سوالات پست قبلی با کلی سوال دیگه مواجه شدم، من فایل ATxmega16A4.h در پروژم رو باز کردم، برای هر قسمت یک ستراکچر تعریف کرده، مثلا برای ADC :
کد:
typedef struct ADC_struct {
register8_t CTRLA; ///< Control Register A
register8_t CTRLB; ///< Control Register B
register8_t REFCTRL; ///< Reference Control
register8_t EVCTRL; ///< Event Control
register8_t PRESCALER; ///< Clock Prescaler
register8_t reserved_0x05; ///< reserved
register8_t INTFLAGS; ///< Interrupt Flags
register8_t TEMP; ///< Temporary register
register8_t reserved_0x08; ///< reserved
register8_t reserved_0x09; ///< reserved
register8_t reserved_0x0A; ///< reserved
register8_t reserved_0x0B; ///< reserved
WORDREGISTER(CAL); ///< Calibration Value
register8_t reserved_0x0E; ///< reserved
register8_t reserved_0x0F; ///< reserved
WORDREGISTER(CH0RES); ///< Channel 0 Result
WORDREGISTER(CH1RES); ///< Channel 1 Result
WORDREGISTER(CH2RES); ///< Channel 2 Result
WORDREGISTER(CH3RES); ///< Channel 3 Result
WORDREGISTER(CMP); ///< Compare Value
register8_t reserved_0x1A; ///< reserved
register8_t reserved_0x1B; ///< reserved
register8_t reserved_0x1C; ///< reserved
register8_t reserved_0x1D; ///< reserved
register8_t reserved_0x1E; ///< reserved
register8_t reserved_0x1F; ///< reserved
ADC_CH_t CH0; ///< ADC Channel 0
ADC_CH_t CH1; ///< ADC Channel 1
ADC_CH_t CH2; ///< ADC Channel 2
ADC_CH_t CH3; ///< ADC Channel 3
} ADC_t;
register8_t یعنی چی؟
این متغیرهایی که داخل استراکچر تعریف شده، در واقع به رجیسترهای ADC مرتبط میشن؟
چرا با اسم ADC_t تعریف شده؟
این خط که ظاهرا بین ADCA و ADC_t ارتباط برقرار میکنه، میش توضیح بدین؟
کد:
#define ADCA (*(ADC_t *) 0x0200)
کد:
sfrb ADCA_CTRLA = 0x0200
با تشکر




)








دیدگاه