اطلاعیه

Collapse
No announcement yet.

چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

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

    چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

    سلام به همه :biggrin:
    دارم سعی می کنم با استفاده از کتابخانه FF.H یه SD CARD رو به میکرو وصل کنم تابع F_MOUNT به درستی اجرا می شه اما تابع F_OPEN این خطا رو بر می گردونه، منم نمی دونم چیو باید بررسی کنم و مشکل ممکنه از کجا باشه!! :sad:
    کسی می تونه راهنمائی ام کنه؟ :redface:
    بی نهایت سپاس گزارم :mrgreen:
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    #2
    پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

    آقایون خانوما
    کسی چیزی در این مورد نمی دونه؟ oo: شما هم چیزی به ذهنتون نمی رسه؟ :sad:
    :cry: :cry:
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    دیدگاه


      #3
      پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

      :rolleyes:
      در کد ویژن ؟ کار میکنید ؟
      من یه تاپیکی در باره ی دستو های تو بیسکام برای راه انداختن مموری کارت زده بودم ولی تو محیط بیسکام بود
      اگر به دردتون میخوره بدم
      :read:
      [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

      دیدگاه


        #4
        پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

        ممنون حامد جان :biggrin:
        آره داداش کدویژن می خوام و بس :sad:
        این ارور یعنی حافظه آماده نیست: حالا منظور از حافظه آماده نیست چیه نمی دونم!!! :sad:
        همیشه بزرگوار تر از آن باشید که برنجید
        و نجیب تر از آن باشید که برنجانید!

        دیدگاه


          #5
          پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

          :eek:
          نمیدونم والا
          تو بیسکام 3 تا دستور بود قبل از اجرای هر دستور باید اون هارو میزدی یکی از دستور ها اماده کردن حافظه بود
          [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

          دیدگاه


            #6
            پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

            http://www.eca.ir/forum2/index.php?topic=45982.0
            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

            دیدگاه


              #7
              پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

              زحمت کشیدی داداش :biggrin:
              فکر کنم باید برم خط به خط هلپ کدویژن رو دوباره بخوونم شاید چیز تازه ای پیدا کنم!! oo:
              همیشه بزرگوار تر از آن باشید که برنجید
              و نجیب تر از آن باشید که برنجانید!

              دیدگاه


                #8
                پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                سلام دوست عزیز :bye

                پیشنهاد من روال زیر هست :

                1 - به ترتیب
                while((res = disk_initialize(0)) != FR_OK);
                res = f_mount(0, &fs);
                if (res == FR_OK)
                res = f_opendir(&dir, "/"

                2 - البته با فرض زیر :
                unsigned char res;
                FATFS fs; /* File system object */
                DIR dir; /* Directory object */
                FILINFO fno; /* File information */

                3 - و ادامه ماجرا
                مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                Sh_Nourbakhsh@Yahoo.com

                http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                دیدگاه


                  #9
                  پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                  با سلام مجدد :bye

                  محض نمونه ............
                  کد:
                  void myRoutine (void)
                  {
                  	unsigned char 	res;
                  	FATFS 					fs;				/* File system object */
                  	DIR 						dir;			/* Directory object  */
                  	FILINFO 				fno;			/* File information  */
                  
                  
                  	//	your codes...
                  	//
                  	//
                  	//
                  
                  	while((res = disk_initialize(0)) != FR_OK);
                  	_delay_ms(100);
                  
                  	res = f_mount(0, &fs);
                  	if (res == FR_OK)
                  	{
                  		while(1)	//loop1
                  		{
                  			res = f_opendir(&dir, "/");
                  			if (res == FR_OK)
                  			{
                  				while(1) //loop2
                  				{
                  					res = f_readdir(&dir, &fno);
                  					if (res != FR_OK)			break;
                  					if (!fno.fname[0]) 		break;										// end of file name/dir
                  								
                  					if (!(fno.fattrib & AM_DIR))										// is not a directory
                  					{
                  						if ((strstr(fno.fname, ".BMP") != NULL) || 
                  							 (strstr(fno.fname, ".bmp") != NULL)) 			// is BMP file
                  						{
                  							res = bmpFile(fno.fname);											 
                  							_delay_ms(2000);
                  								
                  							if (res == FR_OK)
                  							{
                  								//	your codes...
                  								//
                  								//
                  								//
                  							}
                  						}
                  					}
                  				} //loop2
                  			}
                  		}	//loop1
                  	}	
                  }	//myRoutine
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

                  http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                  دیدگاه


                    #10
                    پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                    سلام آقا aivhl
                    ممنون از لطفتون :biggrin:
                    حتما بررسی می کنم امیدوارم که دیگه مشکلی پیش نیاد :mrgreen:
                    شما فکر می کنید این خطایی که می گیرم به خاطر برنامه ای که نوشتم؟ ممکنه مشکل سخت افزاری باشه؟
                    با سپاس :mrgreen:
                    همیشه بزرگوار تر از آن باشید که برنجید
                    و نجیب تر از آن باشید که برنجانید!

                    دیدگاه


                      #11
                      پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                      نوشته اصلی توسط جعفری
                      سلام آقا aivhl
                      ممنون از لطفتون :biggrin:
                      حتما بررسی می کنم امیدوارم که دیگه مشکلی پیش نیاد :mrgreen:
                      شما فکر می کنید این خطایی که می گیرم به خاطر برنامه ای که نوشتم؟ ممکنه مشکل سخت افزاری باشه؟
                      با سپاس :mrgreen:
                      سلام دوست عزیز :bye

                      اگر شما توی مرحله اول یعنی while((res = disk_initialize(0)) != FR_OK); مشکل نداری یعنی مشکل سخت افزاری نداری اگر توی مرحله دوم یعنی res = f_mount(0, &fs); مشکل نداری یعنی مموری هم مشکل نداره و درست توی سوکت مربوطه نشسته و اگر در مراحل بعد مشکل نداری یعنی که دایرکتوری و فایل ها و ... هم وجود دارن.

                      خیلی مرسی .......
                      مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                      Sh_Nourbakhsh@Yahoo.com

                      http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                      دیدگاه


                        #12
                        پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                        الهی حاجت روا شی :mrgreen:
                        راهنمائی خوبی کردید:تابع disk_initialize درست اجرا می شه پس مشکل سخت افزار ندارم :mrgreen:
                        تابع f_mount هم درست اجرا می شه پس مموری هم سالمه :mrgreen:
                        می مونه مرحله ایجاد فایل که مشکل داره :sad: که بررسی می کنم :nerd:
                        اما یه سوال هم برام پیش اومده برای راه اندازیsd card حتما باید rtc داشته باشم؟
                        همیشه بزرگوار تر از آن باشید که برنجید
                        و نجیب تر از آن باشید که برنجانید!

                        دیدگاه


                          #13
                          پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                          نوشته اصلی توسط جعفری
                          الهی حاجت روا شی :mrgreen:
                          راهنمائی خوبی کردید:تابع disk_initialize درست اجرا می شه پس مشکل سخت افزار ندارم :mrgreen:
                          تابع f_mount هم درست اجرا می شه پس مموری هم سالمه :mrgreen:
                          می مونه مرحله ایجاد فایل که مشکل داره :sad: که بررسی می کنم :nerd:
                          اما یه سوال هم برام پیش اومده برای راه اندازیsd card حتما باید rtc داشته باشم؟
                          با سلام مجددتر....

                          نه عزیزم RTC الزامی نیست، مخصوصا وقتی که فقط از روی کارت میخونی و اگر رووش مینویسی و RTC هم نداری میتونی با کد زیر بهش کلک بزنی
                          کد:
                          unsigned long get_fattime (void)
                          {
                          		// SHN I have not RTC!!!
                          	//RTC rtc;
                          	//
                          	//
                          		// Get local time //
                          	//rtc_gettime(&rtc);
                          
                          		// Pack date and time into a unsigned long variable //
                          	//return	 ((unsigned long)(rtc.year - 1980) << 25)
                          	//				| ((unsigned long)rtc.month     << 21)
                          	//				| ((unsigned long)rtc.mday     << 16)
                          	//				| ((unsigned long)rtc.hour     << 11)
                          	//				| ((unsigned long)rtc.min      << 5 )
                          	//				| ((unsigned long)rtc.sec      >> 1 );
                          	 //SHN I have not RTC!!!
                          
                          	// Fixed to Jan. 1, 2010 //
                          	return	 ((unsigned long)(2010 - 1980) << 25)
                          					| ((unsigned long)1       << 21)
                          					| ((unsigned long)1       << 16)
                          					| ((unsigned long)0       << 11)
                          					| ((unsigned long)0       << 5 )
                          					| ((unsigned long)0       >> 1 );
                          
                          }	//get_fattime
                          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                          Sh_Nourbakhsh@Yahoo.com

                          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                          دیدگاه


                            #14
                            پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو

                            شرمنده من دوباره سر وکله ام پیدا شد :redface:
                            داشتم هلپ کدویژن رو مطالعه می کردم دیدم دو تا تابع داره به این شکل:
                            void (*prtc_get_time) (unsigned char *hour, unsigned char *min, unsigned char *sec)


                            pointer to a Real Time Clock function used for reading time.


                            void (*prtc_get_date) (unsigned char *date, unsigned char *month, unsigned int *year)


                            pointer to a Real Time Clock function used for reading date.

                            حالا من موندم این چه جور تابع تعریف کردنه؟؟؟
                            منظورم اوون اسم تابع است که pointer تعریف شده!!! : oo:

                            نمونه ی کدهای خودشم اینهاست:
                            کد:
                            * FAT on MMC/SD/SD HC card support */
                            #include <ff.h>
                            
                            
                            /* PCF8563 RTC functions*/
                            #include <PCF8563.h>
                            
                            
                            /* The PCF8563 RTC on the I2C bus is connected to ATmega128 PORTD
                              SDA - PORTD.1
                              SCL - PORTD.0
                            */
                            #asm
                              .equ __i2c_port=0x12
                              .equ __sda_bit=1
                              .equ __scl_bit=0
                            #endasm
                            
                            
                            void main(void)
                            {
                            /* init the PCF8563 RTC */
                            rtc_init(0,RTC_CLKOUT_OFF,RTC_TIMER_OFF);
                            
                            
                            /* init the pointer to the RTC function used for reading time */
                            prtc_get_time=
                              (void (*)(unsigned char *,unsigned char *,unsigned char *))
                              rtc_get_time;
                            
                            
                            /* init the pointer to the RTC function used for reading time */
                            prtc_get_date=
                              (void (*)(unsigned char *,unsigned char *,unsigned int *))
                              rtc_get_date;
                            
                            
                            /* follows the rest of the program */
                            /* ... */
                            }
                            از همفکریتون سپاسگزارم :biggrin:
                            همیشه بزرگوار تر از آن باشید که برنجید
                            و نجیب تر از آن باشید که برنجانید!

                            دیدگاه


                              #15
                              پاسخ : چطور باید خطای FR_NOT_READY رو در اتصال SDCARD به میکرو رفع کنم؟

                              با سلام،

                              این که اسم تابع Pointer باشه که چیز عجیبی نیست....
                              منظور اینه که یک تابع دیگه به این تابع متصل میشه و مقادیر خودش رو به این تابه میده تا پروسس بشه.
                              مثل این :

                              extern void (*xfunc_out)(uint8_t);

                              /* This is a pointer to user defined output function. It must be initialized
                              before using this modle.
                              */

                              که در عمل هم اینطوری استفاده میشه :
                              xfunc_out = GLCD_PutChar; //**** use Xitoa

                              حالا مشکل حل شده؟
                              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                              Sh_Nourbakhsh@Yahoo.com

                              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                              دیدگاه

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