پاسخ : کامپایلر 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
با تشکر
دیدگاه