سلام دوستان :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:





دیدگاه