اطلاعیه

Collapse
No announcement yet.

کتابخانه ff.h

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : کتابخانه ff.h

    نوشته اصلی توسط hossein_tomari007
    سلام
    این کتابخونه ها فقط برای text نیست
    میتونید با داشتن فرمت ها یک عکس ذخیره کنید!
    من خودم یه برنامه نوشتم که میتونه کل محتویات lcd رو تبدیل به یک عکس با فرمت bmp کنه :smile:
    همون طور که میتونیم یک عکس با فرمت bmp رو رو ال سی دی نشون بدیم :biggrin:
    موفق باشید
    کسی می تونه این موارد را توضیح بده ؟ لینک سورس انگلیسی فارسی ؟
    یادش بخیر یه وقتایی هر روز میومدم اینجا !

    دیدگاه


      پاسخ : کتابخانه ff.h

      سلام یه مشکل فنی که کچلم کرده
      من تا الآن تونستم بدون مشکل یه فایل تکست درست کنم و توش بنویسم و یه پوشه درست کنم
      رم رو با رم ریدر وصل میکنم به کامپیوتر و متنی که نوشتم رو راحت میتونم بخونم بدون مشکل
      اما وقتی میخام تابع f_read رو استفاده کنم ارور 4 رو برمیگردونه که یعنی فایل وجود نداره
      من به اینصورت مینویسم : res=f_read(&file,buffer_read,7,&read_byte) ; که ارور 4 میده
      باید بگم مدار کاملا درسته و برنامه هم درسته ، چون میتونم فایل تکست درست کنم و توش بنویسم و با کامپیوتر بخونمش
      منتظر راهنماییتون هستم
      ممنون

      دیدگاه


        پاسخ : کتابخانه ff.h

        سلام
        بعضی اوقات هرچند آموزش ها بسیار ساده است ولی برای برخی افراد ممکن است کاملا پیچیده و گنگ باشد!
        ابتدایی که من شروع به مطالعه ی این تابع برای ارتباط با کارت های حافظه کردم ،آ‌ هرچند تمام مطالب را خواندم و مثال ها رو بررسی کردم ولی هیچی متوجه نشدم! دقیقا آبان سال 1391
        پس از یکسال که بیخیال موضوع شدم امسال دوباره با جدیت شروع به مطالعه ی مباحث و آموزش ها نمودم و دوباره از اول شروع به مطالعه کردم!
        :wow: حالا متوجه شدم که چقدر این تابع آسان بوده و کاربردی راحت دارد ولی تا پیش از این بنده متوجه بسیاری از نکته های آن نمیشدم و در حقیقت نمی توانستم از آن استفاده کنم!
        :nerd: تصمیم گرفتم حال در همین تایپیک همه ی مطالب یادگرفته شده را آنگونه برای دوستان توضیح دهم که خودم توانستم یاد بگیرم و شاید برخی افراد که تاکنون موفق به یادگیری آن نشده اند بتوانند یاد بگیرند!

        انشاالله در اولین فرصت آموزش به زبانی ساده و راحت در قالب فایل پی دی اف و سورس برنامه نویسی به زبان سی و شبیه سازی پروتئوس رو برای دوستان قرار خواهم داد تا زکاتی باشد بر دانشی که خودم نیز توسط آموزش دیگران یاد گرفته ام!
        سعی خواهم کرد آموزش بیشتر تصویری و عملی باشد تا آنکه فقط تئوری و تعریف محض باشد که همه بتوانند با یکبار مطاله آن را کاملا درک کنند و از آن استفاده کنند!

        مباحثی که برایم گنگ بود و اکنون آن ها را به وضوح می توانم درک کنم و یاد بگیرم را در زیر لیست کرده ام! شاید این ها همان دغدغه های اصلی علاقمندان به یادگیری این تابع و ارتباط با کارت های حافظه باشد!

        1- پیکربندی محیط نرم افزار کدویژن جهت ارتباط میکرو مگا32 با کارت حافظه
        2- پیکربندی سخت افزاری کارت حافظه در دو محیط کاملا متفاوت سخت افزاری و شبیه سازی
        3- نحوه ی استفاده از تابع ff.h و کاربرد هر دستور به صورت مجزا با ذکر مثال
        4- چگونگی معرفی و استفاده ی یک فایل با فرمت txt.* موجود بر روی کارت حافظه در پروتئوس
        5- چگونگی خواندن و نوشتن اطلاعات موجود بر روی آن و تغییر اطلاعات توسط ویندوز
        6- پیکربندی تایمر جهت صدازدن هر 10 میلی ثانیه تابع مخصوص به FAT
        7- مراحل آماده سازی کارت حافظه برای سخت افزار واقعی
        و ...
        آنچه که باعث موفقیت انسان ها می شود سخت کوشی است و نه نخبه بودن! Porsche 911 Turbo S 181.000 $ USD
        جناب سعدی فرموده بودند: "بر احوال ان مرد باید گریست _ که دخلش بود نوزده، خرجش بیست!"
        که اگه الان بود باید میگفت: "بود حال و احوال آن مرد زار _ که دخلش ریال است ، خرجش دلار :|"
        http://www.eca.ir/forum2/index.php?topic=80472.msg489565#msg489565
        http://www.eca.ir/forum2/index.php?topic=82242.msg501926#msg501926

        دیدگاه


          پاسخ : کتابخانه ff.h

          نوشته اصلی توسط shayanmelody
          سلام یه مشکل فنی که کچلم کرده
          من تا الآن تونستم بدون مشکل یه فایل تکست درست کنم و توش بنویسم و یه پوشه درست کنم
          رم رو با رم ریدر وصل میکنم به کامپیوتر و متنی که نوشتم رو راحت میتونم بخونم بدون مشکل
          اما وقتی میخام تابع f_read رو استفاده کنم ارور 4 رو برمیگردونه که یعنی فایل وجود نداره
          من به اینصورت مینویسم : res=f_read(&file,buffer_read,7,&read_byte) ; که ارور 4 میده
          باید بگم مدار کاملا درسته و برنامه هم درسته ، چون میتونم فایل تکست درست کنم و توش بنویسم و با کامپیوتر بخونمش
          منتظر راهنماییتون هستم
          ممنون
          دوباره مدار و برنامم رو چک کردم
          فایل هایی که قبلا تو مموری ریختم رو نمیتونم چه برای خوندن و چه برای نوشتن باز کنم ، فقط میتونم فایل جدید توش ایجاد کنم :angry:
          مدار کاملا سالمه من اومدم تعداد سکتور ها و کلاستر های خالی هم خوندم درست بود ، فقط نمیدونم چرا نمیتونم فایل هایی که تو مموری هست رو بش دسترسی داشته باشم :cry2:

          دیدگاه


            پاسخ : کتابخانه ff.h

            سلام علیکم
            از همه دوستان که در این تاپیک شرکت کرده اند تشکر میکنم. چه عزیزانی که سوال مطرح میکنن که ممکن سوالات خیلی های دیگه هم باشه، و چه بزرگوارانی که سخاوتمندانه پاسخ میدن مثل اساتید اسدی،طوماری،arm1368،ali833 و افتخارالکترونیک و بقیه دوستان.

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

            من یه بورد دارم که یه جور رم ریدر متنیه. یه میکرو مگا32، یه ال سی دی متنی 2*16 و یه ورودی رم microSD
            و چند تا دیپ سویچ برای حرکت بین پوشه ها و فایلها و ورود و خروج به فولدرها.
            کار این بورد فقط نشون دادن اسم فایل ها و فولدرها و ورود و خروج از پوشه هاست.

            و اما مشکلات بوجود اومده:
            1-وقتی کلید BACK رو فشار میدم به ابتدای درایو میره و نه یه پوشه عقب تر.
            2-وقتی چند بار کلید DOWN رو فشار میدم و به انتهای پوشه میرسه انگار میره توی یه فضای دیگه که اگه به تعداد فشار دادن این کلید توی این فضا کلید up رو فشار بدم دوباره به انتهای پوشه میاد. این مشکل برای UP هم همین جوریه.

            بدنه برنامه و پروتئوس اون را قرار دادم:
            http://s1.picofile.com/file/7967930963/salami.zip.html

            کد:
            #include <mega32.h>
            #include <alcd.h>
            #include <ff.h>
            #include <delay.h>
            #include <stdio.h>
            
            #define T1_OVF_FREQ 100
            #define T1_PRESC 1024L
            #define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ)))
            
            
            
            
            unsigned char status;
            FILINFO fno;
            FRESULT res;
            FATFS drive;
            DIR dir;
            
            char path[4]="MMC";
            char Folder[32];
            char fname[32];
            
            interrupt [TIM1_OVF] void timer_comp_isr(void)
              {
              TCNT1H=T1_INIT>>8;
              TCNT1L=T1_INIT&0xFF;
              disk_timerproc();
              }
            
            
             DDRC=0X01;
             void init(void)
              {
              lcd_clear();
              if((res=f_mount(0,&drive))==FR_OK)
                lcd_putsf("DRIVE SET IN 0");
              else
                lcd_putsf("DRIVE NOT SET");
              delay_ms(5);
              lcd_clear();
              status=disk_initialize(0);
              if (status & STA_NODISK)
                lcd_puts("Card not present");
              else if (status & STA_NOINIT)
                lcd_puts("Disk init failed");
              else if (status & STA_PROTECT)
                lcd_puts("Card write\nprotected");
              else
                lcd_puts("Init OK");
              delay_ms(10);
              lcd_clear();
              return;
              }
            void main(void)
              {
              PORTA=0xFF;
              DDRA=0X00;
            
              TCCR1A=0x00;
              TCCR1B=(1<<CS12)|(1<<CS10);
              TCNT1H=T1_INIT>>8;
              TCNT1L=T1_INIT&0xFF;
              TIMSK=1<<TOIE1;
              #asm("sei")
            
              lcd_init(16);
              lcd_clear();
              lcd_putsf("Welcome");
              delay_ms(20);
              lcd_clear();
            
              init();
            
              res = f_opendir(&dir, path);
              if (res == FR_OK)
                {
                lcd_putsf("Ready...");
                delay_ms(20);
                lcd_clear();
                }
                res = f_readdir(&dir, &fno);
                res = f_readdir(&dir, &fno);
            
            
              sprintf(Folder,"%s",path);
              while(1)
                {
                if (PINA.2==0)
                  {
                  res = f_readdir(&dir, &fno);
                  if (res == FR_OK)
                    {
                    lcd_clear();
                    sprintf(fname,"%s/%s", Folder, fno.fname);
                    lcd_puts(fname);
                    delay_ms(10);
            
                    }
                  }
            
                if (PINA.0==0)
                  {
                  res = f_opendir(&dir, fname);
                  if (res == FR_OK)
                    {
                    sprintf(Folder,"%s",fno.fname);
                    lcd_clear();
                    lcd_putsf("Please Wait...");
                    delay_ms(20);
                    lcd_clear();
                    }
                  res = f_readdir(&dir, &fno);
                  res = f_readdir(&dir, &fno);
                  }
            
            
                }
            
            
              }
            دانی که را سزد صفت پاکی آنکو وجود پاک نیالاید

            دیدگاه


              پاسخ : کتابخانه ff.h

              ببخشید فایل هگزی که باید توی پروتئوس میکرو اجرا کنه نذاشته بودم:
              http://s2.picofile.com/file/7967952575/g.hex.html
              دانی که را سزد صفت پاکی آنکو وجود پاک نیالاید

              دیدگاه


                پاسخ : کتابخانه ff.h

                سلام

                ببخشید میخواستم از طریق میکرو با حافظه sd ارتباط برقرار کنم ، لطفا یک شماتیک معرفی کنید .

                باتشکر .

                دیدگاه


                  پاسخ : کتابخانه ff.h

                  با سلام خدمت اساتید محترم آقا من تا صفحه 10 این تاپیک رو خوندم منتها که جواب سوالم رو نگرفتم سوالم بیشتر سخت افزاریه تا در مورد توابع این کتابخانه تو این کتابخانه (ff.h) دقیقا کجا سخت افزار رو تعریف میکنه میدونم باید از قسمت تنظیمات کامپایلر کدویژن تنظیم کنیم ولی سوالی که هست اینه که پایه cs حافظه رو باید به پایه دیگه ای به غیر از SS میکرو وصل کنیم چون فکر میکنم اصن از spi میکرو استفاده نکرده بعدش چرا تو پروتئوس نمیشه شبیه سازیش کرد یعنی میشه از mmc استفاده کرد و ازش خوند ولی وقتی میخوای مثلا یه فایل باز کنی تو حافظه نمیشه تو مدار هم نمیتونم از حافظه بخونم و بنویسم البته منظورم موقعیه که از توابع همین کتاب خونه استفاده میکنم هست دوستان لطف کنید راهنمایی کنید مغزم دیگه پاسخگو نیست خیلی سرچ کردم ولی چیز واضحی پیدا نکردم :cry:

                  دیدگاه


                    پاسخ : کتابخانه ff.h

                    سلام دوستان من برنامه wave player که مهندس اسدی به این اسم WAV Player 8BITکاملا به صورت رایگان و بدون هیچ توقعی پلود کرده بودن(خدا مهندسترشون کنه) :nerd:
                    رو به صورت عملی بستم و با کیفیت خیلی خوب جواب گرفتم :wow: :wow:
                    ولی هر چقدر با برنامه ور رفتم که به برنامه قابلبت جستجوی یک فایل خاص رو بدم نتونستم و به خاطر هدر های تو در تو اصلا نمیدونم باید چی رو کجا اضافه کنم و این قابلیت رو بهش بدم
                    لطفا اگه کسی قبلا این کارو کرده یا اینکه میدونه چطور باید این کار رو کرد یکم توضیح بده که چیکار کنم یا برام فایلشو بفرسته

                    با تشکر موفق باشین
                    من نه آنم که زبونی کشم از چرخ فلک
                    چرخ بر هم زنم ار غیر مرادم باشد

                    دیدگاه


                      پاسخ : کتابخانه ff.h

                      با عرض سلام
                      من این تاپیک را 2 بار خوندم ولی نفهمیدم که برنامه از کجا می فهمه که ما مموری را به کدوم پایه های میکرو متصل کردیم. البته منظورم توی کد ویژن هست و بدون استفاده از کانفیک خود کد ویژن.
                      در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

                      1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
                      2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
                      3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

                      دیدگاه


                        پاسخ : کتابخانه ff.h

                        نوشته اصلی توسط aseok
                        سلام

                        ببخشید میخواستم از طریق میکرو با حافظه sd ارتباط برقرار کنم ، لطفا یک شماتیک معرفی کنید .

                        باتشکر .

                        سلام
                        مسئله حل شد .

                        دیدگاه


                          پاسخ : کتابخانه ff.h

                          سلام
                          پروژه MP3PLAYER مهندس اسدی رو دانلود کن برو داخل فولدر TOOLS بعد فولدر Confighبعد یه فیال هست بنامHs_mcu.h
                          یه نگاهی بندازی متوجه میشی که چی به چی هستش

                          دیدگاه


                            پاسخ : کتابخانه ff.h

                            با سلام

                            ببخشید قصد ندارم که خدایی نکرده بحث در رابطه با اینکه کدوم کامپایلر بهتره رو ایجاد کنم یه موردی رو امروز امتحان کردم که به نظرم میتونه تو رسیدن به یک خروجی بهینه و بهره وری بیشتر از سخت افزار کوچکتر موثر واقع بشه و اون اینکه در رابطه با حجم کد خروجی IAR و WINAVR برای یک برنامه مشابه که در اون از FATFS استفاده شده (نسخه کامل FATFS) برای MEGA16 نتایج زیر حاصل شد:

                            کد:
                            WINAVR:
                            Program:  15566 bytes (95.0% Full)
                            (.text + .data + .bootloader)
                            
                            Data:    695 bytes (67.9% Full)
                            (.data + .bss + .noinit)
                            
                            
                            IAR:
                            
                            59.37%= CODE memory 
                             9 728 bytes of CODE memory (+      80 range fill ) 
                            DATA memory = 94.72%
                              970 bytes of DATA memory (+ 3 absolute )
                            نکته جالب اینه که حجم فلش خروجی IAR از WINAVR کمتر و برعکس میزان SRAM مصرفی در خروجی WINAVR از IAR کمتر شده.

                            دیدگاه


                              پاسخ : کتابخانه ff.h

                              نوشته اصلی توسط siyavash2k
                              با عرض سلام
                              من این تاپیک را 2 بار خوندم ولی نفهمیدم که برنامه از کجا می فهمه که ما مموری را به کدوم پایه های میکرو متصل کردیم. البته منظورم توی کد ویژن هست و بدون استفاده از کانفیک خود کد ویژن.

                              کسی نبود جواب ما را بده؟
                              من می خوام مموری را به xmega وصل کنم. کجا تنظیمات پایه ها را انجام بدم؟
                              نیاید بگید برو تو فایل کانفیگ و ....
                              رجیسترهای xmega با mega فرق دارن. همینطور تعداد واحد های spi
                              در زیر این نقاب چیزی بیشتر از گوشت هست. در زیر این نقاب یک ایده هست و ایده ها ضدگلوله هستند.

                              1-به اندازه ی باورهای هر کسی ؛ با او حرف بزن …. بیشتر که بگویی ، تو را احمق فرض خواهد کرد …!!!
                              2-تنها دو گروه نمى توانند افکار خود را عوض کنند: دیوانگان تیمارستان و مردگان گورستان.
                              3-آدم ها مثل عکس ها هستند: زیاد بزرگشون کنی ، کیفیتشون میاد پایین!

                              دیدگاه


                                پاسخ : کتابخانه ff.h

                                کسی نبود جواب ما را بده؟
                                من می خوام مموری را به xmega وصل کنم. کجا تنظیمات پایه ها را انجام بدم؟
                                نیاید بگید برو تو فایل کانفیگ و ....
                                رجیسترهای xmega با mega فرق دارن. همینطور تعداد واحد های spi
                                توابعی که تو این تاپیک در موردشون بحث شده روی سری مگا پورت شدن،
                                شما باید خودتون فایل diskio.c (یا حالا هر اسمی که خودتون میزارید فقط باید فرمت توابع به همون شکل باشه که تو فایل نمونه هست) رو متناسب با میکرویی که باهاش کار میکنید تنظیم کنید، راه دیگه اینه که از نمونه کدهایی که fatfs رو به xmega پورت کردن استفاده کنید، که استاد کی نژاد(طراح) یک نمونه کد در این رابطه تو سایتشون قرار دادن، البته برای IAR، برای پورت کردنش به کدویژن بهتره که یه تاپیک تو انجمن XMEGA بزنید و تو اونجا از ایشون بخواهید که در این رابطه کمکتون کنند.

                                http://knowledgeplus.ir/electronics/XMEGA.aspx?lang=Fa
                                یا
                                http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewIte m&item_type=project&item_id=3418

                                دیدگاه

                                لطفا صبر کنید...
                                X