سلام دوستان :mrgreen:
من قصد دارم یه sdcard رو به میکرو وصل کنم برای اینکار کتابخانه ff.h رو به برنامه اضافه کردم و یه سری نمونه کد در هلپ کدویژن و هم چنین مجله نویز 2 رو مطالعه کردم، تابع disk_timerproc برای برقراری ارتباط بین میکرو و کارت باید هر 10 ms فراخوانی شود حالا من نمی دونم این کد هایی که تو این مثال ها نوشته شده دقیقا چیه؟
آقا چرا مثلا اینکارو انجام نمی ده: فرکانس تایمر125 کیلو برای 10 میلی ثانیه باید 1250 کلاک بگذره پس مقدار اولیه تایمر 64285 می شه وهر دفعه با این مقدار ، مقدار دهی اولیه بشه.
این متغیر های cs10 و cs12 و TOIE1 چین؟
اگر بخوام از وقفه های سایر تایمرها و وقفه های خارجی استفاده کنم TIMSK رو چطور باید مقدار دهی کنم؟
با سپاس فراوان
:biggrin:
من قصد دارم یه sdcard رو به میکرو وصل کنم برای اینکار کتابخانه ff.h رو به برنامه اضافه کردم و یه سری نمونه کد در هلپ کدویژن و هم چنین مجله نویز 2 رو مطالعه کردم، تابع disk_timerproc برای برقراری ارتباط بین میکرو و کارت باید هر 10 ms فراخوانی شود حالا من نمی دونم این کد هایی که تو این مثال ها نوشته شده دقیقا چیه؟
کد:
]#define T1_OVF_FREQ 100 #define T1_PRESC 1024L #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ))) interrupt [TIM1_OVF] void timer_comp_isr(void) { /* re-initialize Timer1 */ TCNT1H=T1_INIT>>8; TCNT1L=T1_INIT&0xFF; /* card access low level timing function */ disk_timerproc(); } void main(void) } TCCR1A=0x00; TCCR1B=(1<<CS12)|(1<<CS10); TCNT1H=T1_INIT>>8; TCNT1L=T1_INIT&0xFF; TIMSK=1<<TOIE1; . . .
این متغیر های cs10 و cs12 و TOIE1 چین؟
اگر بخوام از وقفه های سایر تایمرها و وقفه های خارجی استفاده کنم TIMSK رو چطور باید مقدار دهی کنم؟
با سپاس فراوان
:biggrin:
دیدگاه