codevisionavrFAT6

راه اندازی FATوکار با حافظه های MMC و SDCباAVR – قسمت6

به نام خدا

راه اندازی FAT با AVR قسمت 6 : دو نکته مهم و بررسی یک برنامه عملی

پس از آن که با توابع اصلی و مهم FAT آشنا شدیم حال می خواهیم به بررسی یک برنامه عملی بپردازیم، قبل از آن که وارد بحث برنامه نویسی شویم باید به دو نکته مهم در مورد کار با توابع FAT توجه کنیم.

  • برای عملکرد صحیح کارت حافظه چه MMC,SDC و SD HC باید تابع زیر که یک تابع low level می باشد هر 10 میلی ثانیه فراخوانی شود.

void disk_timerproc (void);

به منظور عملکرد صحیح این تابع را در وقفه تایمری که 10 میلی ثانیه تنظیم شده است باید قرار دهیم. باید اطمینان پیدا کنید که این تابع در برنامه شما هر 10 میلی ثانیه اجرا می شود در غیر این صورت توابع کارت حافظه زمانی که، time out شدن عملیات را بررسی می کنند، در انتهای حلقه قفل می گردند.

  • پس از آن که دیتای مورد نظر را در فایل نوشتیم برای ذخیره شدن اطلاعات باید از دستور زیر استفاده کنیم:

FRESULT f_close(FIL* fp);

  • این تابع دارای یک ورودی و یک مقدار برگشتی می باشد. ورودی ما از جنس استراکچر FIL می باشد، که باید اسم فایلی را بدهیم که دیتا را در آن نوشته ایم. همچنین مقدار برگشتی می تواند یکی از مقادیر زیر باشد:
    1. FR_OK : در صورت موفقیت آمیز بودن عملیات این تابع این مقدار را بر می گرداند.
    2. FR_NOT_READY : دسترسی به دیسک امکان پذیر نمی باشد، ممکن است به دلیل گم کردن اطلاعات یا چیزی دیگر باشد.
    3. FR_DISK_ERR : عملیات ناموفق بوده است ،زیرا دسترسی فیزیکی به دیسک از دست رفته است.
    4. FR_INT_ERR : عملیات به علت اشتباه بودن استراکچر FAT و یا خطای داخلی ناموفق بوده است.
    5. FR_INVALID_OBJECT : فایل با تابع f_open باز نشده است.

حال که اطلاعات لازم برای کار با حافظه ها را داریم به برنامه نویسی برای آن ها می پردازیم.

  • تابع زیر هر 10 میلی ثانیه اجرا می گردد:

1-int

 

 

 

  • تابع زیر فضای لازم برای کار با FAT را آماده سازی می کند:

2-mount

 

  • تابع زیر فایل با آدرس مورد نظر ما را باز می کند:

3-open

 

  • تابع زیر در فایل باز شده 17 بایت از دیتا را می نویسد:

4-write

 

  • و در آخر تابع زیر فایل را ذخیره می کند و سپس می بندد:

5-close

 

 

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *