اطلاعیه

Collapse
No announcement yet.

ایجاد فایل بر روی MMC با فرمت Fat16

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

    پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

    سلام به همه دوستان عزیز.
    یه سوال دارم که فکر میکنم کسی توی این سایت جوابی براش نداشته باشه.
    خوب آیا شما می دونید که سرعت نوشتن هر بایت دیتا توی این مموری ها با برنامه ی avr_dos (یعنی fat16) چند بایت بر ثانیه هست؟??? :question: :cry:
    خداوند جهاد را برای سرافرازی اسلام واجب کرد.
    حضرت فاطمه (س)

    دیدگاه


      پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

      نه. ولی سرعتش خیلی خیلی بالاست

      دیدگاه


        پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

        نوشته اصلی توسط feshwari
        نه. ولی سرعتش خیلی خیلی بالاست
        مثلا بیش از 100kByte/s هست یا نه؟؟؟؟؟؟
        خداوند جهاد را برای سرافرازی اسلام واجب کرد.
        حضرت فاطمه (س)

        دیدگاه


          پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

          سلام
          در مورد بحثه سرعت چند تا عامل دخیلن توی کم و زیاد شدن اون
          اگه فایل config_mmc.bas رو روی بیشترین سرعت و spi رو سخت افزاری بذارید و میکرو رو هم با حداکثر سرعت کار کنه بازهم چند مورد دیگه هست

          یکی اینکه mmc به مراتب از sd سرعت کمتری داره
          دوم اینکه نوع مموری که دارید کار میکنید از نظر مرغوبیت سرعت رو کم و زیاد میکنه من بهترین مدل رو با میکرو تست کردم kingstone2giga بود که با سرعت میکرو 14.7456mhz سرعت خوندنش حدودا 400 کیلو بایت برثانیه بود (این عدد فقط زمان مصرفی برای خوندن بایته نه محاسبات و دستورهای دیگه)

          توی مموری ها سه مشخصه مهم هست که یه جایی از اون نوشته میشه یکی نسبت read به write که هرچی به یک نزدیکتر باشه بهتره چون عمل write همیشه کنده و توی این مموری 3 بود یعنی Read از Write سه برابر سریعتر بود

          دوم زمان دستریی به سکتوره یا access time که توی مموری kingston این عدد 100us بود ولی توی یه مموری مبایل 10ms بود
          سوم ماکزیمم سرعت مموری که توی sd برابر 50 مگا بیت بر ثانیه هست

          البته با یه مموری 128 مگابایتی این عداد برابر بود با :
          زمان دسترسی 1ms نسبت read به write پنج و سرعت read برابر با 270 کیلو بایت برثانیه بود

          بازهم میگم این اعداد فقط زمان تلف شده روی خوندن یک بایت بود و اگه محاسبات و کار های دیگه رو هم بهش اضافه کنیم شاید سرعت read به 70 کیلوبایت برسه
          به وبلاگم سر بزنید

          دیدگاه


            پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

            نوشته اصلی توسط alitaroosheh
            سلام
            در مورد بحثه سرعت چند تا عامل دخیلن توی کم و زیاد شدن اون
            اگه فایل config_mmc.bas رو روی بیشترین سرعت و spi رو سخت افزاری بذارید و میکرو رو هم با حداکثر سرعت کار کنه بازهم چند مورد دیگه هست

            یکی اینکه mmc به مراتب از sd سرعت کمتری داره
            دوم اینکه نوع مموری که دارید کار میکنید از نظر مرغوبیت سرعت رو کم و زیاد میکنه من بهترین مدل رو با میکرو تست کردم kingstone2giga بود که با سرعت میکرو 14.7456mhz سرعت خوندنش حدودا 400 کیلو بایت برثانیه بود (این عدد فقط زمان مصرفی برای خوندن بایته نه محاسبات و دستورهای دیگه)

            توی مموری ها سه مشخصه مهم هست که یه جایی از اون نوشته میشه یکی نسبت read به write که هرچی به یک نزدیکتر باشه بهتره چون عمل write همیشه کنده و توی این مموری 3 بود یعنی Read از Write سه برابر سریعتر بود

            دوم زمان دستریی به سکتوره یا access time که توی مموری kingston این عدد 100us بود ولی توی یه مموری مبایل 10ms بود
            سوم ماکزیمم سرعت مموری که توی sd برابر 50 مگا بیت بر ثانیه هست

            البته با یه مموری 128 مگابایتی این عداد برابر بود با :
            زمان دسترسی 1ms نسبت read به write پنج و سرعت read برابر با 270 کیلو بایت برثانیه بود

            بازهم میگم این اعداد فقط زمان تلف شده روی خوندن یک بایت بود و اگه محاسبات و کار های دیگه رو هم بهش اضافه کنیم شاید سرعت read به 70 کیلوبایت برسه
            سلام علی آقا
            من اگه به سرعت 100kbyte/s نیاز داشته باشم میفرمائید چه کنم راه حلی ندارید؟؟؟ فکر میکنم مجبور باشم برم از مد SD استفاده کنم.
            یه مموری SD 1G kingston دارم با این میشه؟؟؟؟ :angry: :cry2:
            خداوند جهاد را برای سرافرازی اسلام واجب کرد.
            حضرت فاطمه (س)

            دیدگاه


              پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

              سلام
              سرعتی که من گفتم 400 کیلو بود شما 100 کیلو میخواید خوب یه جورایی جواب میده

              البته چون محاسبات پیدا کردن سکتور و کلاستر پیچیدست سرعت به مراتب پایین میاد

              پیشنهاد میکنم از یه میکرو گنده مثله مگا 128 یا 2651 استفاده کنید و یه بافر 1 یا 2 کیلو بایتی ایجاد کنید تا کمتر در گیر جابجایی و محاسبات اون بشید این طوری سرعت بالا تر میره

              من توی نوشتن مشکل سرعت داشتم که با بافر پینگ پنگ رفع شد

              این جور بافر مثل الاکلنگ وقتی یکی پر میشه یکی دیگه نوشته میشه حالا برای شما یکی پر میشه یکی انتقال داده میشه به جای دیگه فکر کنم میخواید صدا پخش کنید که این سرعت رو نیاز دارید
              به هر حال بافر ها ضریبی از 512 باشه چون هر سکتور توی مموری 512 بایته
              به وبلاگم سر بزنید

              دیدگاه


                پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                چرا یکی جواب منو نمی ده؟

                دیدگاه


                  پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                  سلام
                  من ای وی ار داسی پیدا کردم که روی ATmega32 هم اجرا میشه :wow: :wow: :wow: :wow: :wow: :wow: :wow: :applause: :applause: :applause: :applause: :applause: :applause: :nice: :nice: :nice:
                  و ارور اسرم نمیده اگه مشکل کسی رو حل میکنه بگید تا بزارم.
                  الهم عجل لولیک الفرج

                  فقط 313 نفر...

                  دیدگاه


                    پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                    سلام
                    این موضوع که روی همه میکرو ها درست کار میکنه شما حتی میتونید روی mega8 هم راه بندازید ولی برای این کار باید تنظیمات توی فایل config_avr-dos.bas رو عوض کنید توی فایل همه توضیحات رو داده

                    اینم یه قسمت از این فایله که همه av-dos ها با این تنظیم میشن

                    ' Count of file-handles, each file-handle needs 524 Bytes of SRAM
                    Const Cfilehandles = 2 ' [default = 2]

                    ' Handling of FAT-Buffer in SRAM:
                    ' 0 = FAT- and DIR-Buffer is handled in one SRAM buffer with 561 bytes
                    ' 1 = FAT- and DIR-Buffer is handled in separate SRAM buffers with 1078 bytes
                    ' Parameter 1 increased speed of file-handling
                    Const Csepfathandle = 0 ' [default = 1]

                    ' Handling of pending FAT and Directory information of open files
                    ' 0 = FAT and Directory Information is updated every time a data sector of the file is updated
                    ' 1 = FAT and Directory Information is only updated at FLUSH and SAVE command
                    ' Parameter 1 increases writing speed of data significantly
                    Const Cfatdirsaveatend = 1 ' [default = 1]

                    به وبلاگم سر بزنید

                    دیدگاه


                      پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                      آقای FAM اگه امکان داره بزارید

                      دیدگاه


                        پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                        نوشته اصلی توسط feshwari
                        ممنون.
                        حالا مشکل فرمت کردن MMC با فرمت FAT16 حل شد. حالا چطور عکس BMP رو به باینری تبدیل کنم؟
                        نمیدونم تا حال تونستید یا نه ولی LCD RGB-8 Converter توی help بیسکام رو نگاه کنید توی ورژنهای جدید بیسکام یه کانورتور هست واسه این کار
                        به وبلاگم سر بزنید

                        دیدگاه


                          پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                          سلام
                          در مورد
                          این موضوع که روی همه میکرو ها درست کار میکنه شما حتی میتونید روی mega8 هم راه بندازید
                          در حقیقت نمی شه چرا که برخلاف اینکه AVR DOS کتابخونه کاملیه ولی مصرف حافظه زیادی هم داره. متن زیر از Help بسکام هست:

                          Requirements:
                          · Hardware: see AN 123 on http://www.mcselec.com/an_123.htm
                          · Software: appr. 2K-Word Code-Space (4000 Bytes)
                          · SRAM: 561 Bytes for File system Info and DIR-Handle buffer
                          · 517 Bytes if FAT is handled in own buffer (for higher speed), otherwise it is handled with the DIR Buffer
                          · 534 Bytes for each File handle
                          · This means that a Mega103 or Mega128 is the perfect chip. Other chips have too little internal memory. You could use XRAM memory too with a Mega8515 for example.

                          تو متن بالا 561 بایت برای اطلاعات سیستم فایل لازم داره. بعد اگر اطلاعات FAT تو حافظه مدیریت بشه (برای دستیابی به سرعت بیشتر) 517 بایت دیگه هم لازم داره. جدا از اون برای باز کردن هر فایلی به 534 بایت اضافه هم نیاز داره. بنابراین حداقل 1095 بایت می خواد در صورتی که شما به سرعت پایین راضی باشین و بیشتر از یک فایل هم باز نکنی. خودش هم پیشنهاد داده یا میکروکنترلر های دیگه یا از RAM خارجی استفاده بشه.

                          من ای وی ار داسی پیدا کردم که روی ATmega32 هم اجرا میشه
                          اگر امکان داره اونو بذار ممنون از پیگیریت.
                          موفق باشین

                          دیدگاه


                            پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                            من خودم با avr-dos توی Atmega8 کار کردم و اگر کسی شک داره میتونه email بزنه تا توجیه بشه

                            بلاخره 5 ساله خاک mmc رو خوردیم و کاری نبوده که انجام نداده باشم

                            میخواید با attiny13 براتون mmc driver بنویسم؟؟؟
                            به وبلاگم سر بزنید

                            دیدگاه


                              پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                              سلام بر همگی
                              اینم برنامه
                              ' Config File-System for Version 5.4:
                              ' Needs BASCOM-AVR 1.11.8.2 or higher

                              ' === User Settings ================================================== ==========

                              ' Count of file-handles, each file-handle needs 524 Bytes of SRAM
                              Const Cfilehandles = 1 ' [default = 2] changed for mega32

                              ' Handling of FAT-Buffer in SRAM:
                              ' 0 = FAT- and DIR-Buffer is handled in one SRAM buffer with 561 bytes
                              ' 1 = FAT- and DIR-Buffer is handled in separate SRAM buffers with 1078 bytes
                              ' Parameter 1 increased speed of file-handling
                              Const Csepfathandle = 0 ' [default = 1] changed fom mega32

                              ' Handling of pending FAT and Directory information of open files
                              ' 0 = FAT and Directory Information is updated every time a data sector of the file is updated
                              ' 1 = FAT and Directory Information is only updated at FLUSH and SAVE command
                              ' Parameter 1 increases writing speed of data significantly
                              Const Cfatdirsaveatend = 1 ' [default = 1]


                              ' Surrounding String with Quotation Marks at the Command WRITE
                              ' 0 = No Surrounding of strings with quotation.marks
                              ' 1 = Surrounding of strings with quotation.marks (f.E. "Text&quot
                              Const Ctextquotationmarks = 1 ' [default = 1]


                              ' Write second FAT. Windows accepts a not updated second FAT
                              ' PC-Command: chkdsk /f corrects the second FAT, it overwrites the
                              ' second FAT with the first FAT
                              ' set this parameter to 0 for high speed continuing saving data
                              ' 0 = Second FAT is not updated
                              ' 1 = Second FAT is updated if exist
                              Const Cfatsecondupdate = 1 ' [default = 1]


                              ' Character to separate ASCII Values in WRITE - statement (and INPUT)
                              ' Normally a comma (,) is used. but it can be changed to other values, f.E.
                              ' to TAB (ASCII-Code 9) if EXCEL Files with Tab separated values should be
                              ' written or read. This parameter works for WRITE and INPUT
                              ' Parameter value is the ASSCII-Code of the separator
                              ' 44 = comma [default]
                              ' 9 = TAB ' [default = 44]
                              Const Cvariableseparator = 9




                              ' === End of User Setting ================================================== ====



                              ' === Variables for AVR-DOS ================================================== ==

                              ' FileSystem Basis Informationen
                              Dim Gldrivesectors As Long
                              Dim Gbdoserror As Byte

                              ' Master Boot Record
                              Dim Gbfilesystem As Byte
                              ' Partition Boot Record
                              Dim Gbfilesystemstatus As Byte
                              Dim Glfatfirstsector As Long
                              Dim Gbnumberoffats As Byte
                              Dim Glsectorsperfat As Long
                              Dim Glrootfirstsector As Long
                              Dim Gwrootentries As Word
                              Dim Gldatafirstsector As Long
                              Dim Gbsectorspercluster As Byte
                              Dim Glmaxclusternumber As Long
                              Dim Gllastsearchedcluster As Long

                              ' Additional info
                              Dim Glfs_temp1 As Long

                              ' Block für Directory Handling

                              Dim Gldirfirstsectornumber As Long

                              Dim Gwfreedirentry As Word
                              Dim Glfreedirsectornumber As Long

                              Dim Gsdir0tempfilename As String * 11
                              Dim Gwdir0entry As Word ' Keep together with next, otherwise change _DIR
                              Dim Gldir0sectornumber As Long

                              Dim Gstempfilename As String * 11
                              Dim Gwdirentry As Word
                              Dim Gldirsectornumber As Long
                              Dim Gbdirbufferstatus As Byte
                              Dim Gbdirbuffer(512) As Byte
                              Const C_filesystemsramsize1 = 594
                              #if Csepfathandle = 1
                              Dim Glfatsectornumber As Long
                              Dim Gbfatbufferstatus As Byte
                              Dim Gbfatbuffer(512) As Byte
                              Const C_filesystemsramsize2 = 517
                              #else
                              Const C_filesystemsramsize2 = 0
                              #endif

                              ' File Handle Block
                              Const Co_filenumber = 0
                              Const Co_filemode = 1
                              Const Co_filedirentry = 2 : Const Co_filedirentry_2 = 3
                              Const Co_filedirsectornumber = 4
                              Const Co_filefirstcluster = 8
                              Const Co_filesize = 12
                              Const Co_fileposition = 16
                              Const Co_filesectornumber = 20
                              Const Co_filebufferstatus = 24
                              Const Co_filebuffer = 25
                              Const C_filehandlesize = Co_filebuffer + 513 ' incl. one Additional Byte for 00 as string terminator
                              ' for direct text reading from File-buffer
                              Const C_filehandlesize_m = 65536 - C_filehandlesize ' for use with add immediate word with subi, sbci
                              ' = minus c_FileHandleSize in Word-Format

                              Const C_filehandlessize = C_filehandlesize * Cfilehandles


                              Dim Abfilehandles(c_filehandlessize) As Byte
                              Const C_filesystemsramsize = C_filesystemsramsize1 + C_filesystemsramsize2 + C_filehandlessize


                              ' End of variables for AVR-DOS ================================================

                              ' Definitions of Constants ================================================== ==

                              ' Bit definiton for FileSystemStatus

                              Dfilesystemstatusfat Alias 0 : Const Dfilesystemstatusfat = 0 ' 0 = FAT16, 1 = FAT32
                              Dfilesystemsubdir Alias 1 : Const Dfilesystemsubdir = 1 ' 0 = Root-Directory, 1 = Sub-Directory
                              Const Dmfilesystemsubdir =(2 ^ Dfilesystemsubdir) ' not used yet
                              Const Dmfilesystemdirincluster =(2 ^ Dfilesystemstatusfat + 2 ^ Dfilesystemsubdir) ' not used yet
                              Dfatsecondupdate Alias 7 : Const Dfatsecondupdate = 7 ' Bit-position for parameter of
                              ' Update second FAT in gbFileSystemStatus


                              ' Bit Definitions for BufferStatus (FAT, DIR, File)

                              Deof Alias 1 : Const Deof = 1 : Const Dmeof =(2 ^ Deof)
                              Deofinsector Alias 2 : Const Deofinsector = 2 : Const Dmeofinsector =(2 ^ Deofinsector)
                              Dwritepending Alias 3 : Const Dwritepending = 3 : Const Dmwritepending =(2 ^ Dwritepending)
                              Dfatsector Alias 4 : Const Dfatsector = 4 : Const Dmfatsector =(2 ^ Dfatsector) ' For Writing Sector back (FATNumber times)
                              Dfileempty Alias 5 : Const Dfileempty = 5 : Const Dmfileempty =(2 ^ Dfileempty)

                              ' New feature for reduce saving
                              Dfatdirwritepending Alias 6 : Const Dfatdirwritepending = 6 : Const Dmfatdirwritepending =(2 ^ Dfatdirwritepending)
                              Dfatdirsaveatend Alias 7 : Const Dfatdirsaveatend = 7 : Const Dmfatdirsaveatend =(2 ^ Dfatdirsaveatend)
                              Dfatdirsaveanyway Alias 0 : Const Dfatdirsaveanyway = 0 : Const Dmfatdirsaveanyway =(2 ^ Dfatdirsaveanyway)




                              Const Dmeofall =(2 ^ Deof + 2 ^ Deofinsector)
                              Const Dmeof_empty =(2 ^ Deof + 2 ^ Deofinsector + 2 ^ Dfileempty)


                              Const Cp_fatbufferinitstatus =(2 ^ Dfatsector)
                              Const Cp_dirbufferinitstatus = 0


                              #if Cfatdirsaveatend = 1
                              Const Cp_filebufferinitstatus =(2 ^ Dfatdirsaveatend)
                              #else
                              Const Cp_filebufferinitstatus = 0
                              #endif



                              #if Cfatsecondupdate = 0
                              Const Cp_fatsecondupdate =(2 ^ Dfatsecondupdate)
                              #else
                              Const Cp_fatsecondupdate = 0
                              #endif


                              ' Bit definitions for FileMode (Similar to DOS File Attribut)
                              Dreadonly Alias 0 : Const Dreadonly = 0
                              'Const cpFileReadOnly = &H21 ' Archiv and read-only Bit set
                              Const Cpfilewrite = &H20 ' Archiv Bit set


                              ' Error Codes

                              ' Group Number is upper nibble of Error-Code
                              ' Group 0 (0-15): No Error or File End Information
                              Const Cpnoerror = 0
                              Const Cpendoffile = 1

                              ' Group 1 (17-31): File System Init
                              Const Cpnombr = 17
                              Const Cpnopbr = 18
                              Const Cpfilesystemnotsupported = 19
                              Const Cpsectorsizenotsupported = 20
                              Const Cpsectorsperclusternotsupported = 21
                              Const Cpcountofclustersnotsupported = 22

                              ' Group 2 (32-47): FAT - Error
                              Const Cpnonextcluster = 33
                              Const Cpnofreecluster = 34
                              Const Cpclustererror = 35
                              ' Group 3 (49-63): Directory Error
                              Const Cpnofreedirentry = 49
                              Const Cpfileexists = 50
                              Const Cpfiledeletenotallowed = 51
                              Const Cpsubdirectorynotempty = 52
                              Const Cpsubdirectoryerror = 53
                              Const Cpnotasubdirectory = 54
                              ' Group 4 (65-79): File Handle
                              Const Cpnofreefilenumber = 65
                              Const Cpfilenotfound = 66
                              Const Cpfilenumbernotfound = 67
                              Const Cpfileopennohandle = 68
                              Const Cpfileopenhandleinuse = 69
                              Const Cpfileopenshareconflict = 70
                              Const Cpfileinuse = 71
                              Const Cpfilereadonly = 72
                              Const Cpfilenowildcardallowed = 73
                              Const Cpfilenumberinvalid = 74 ' Zero is not allowed

                              ' Group 7 (97-127): other errors
                              Const Cpfilepositionerror = 97
                              Const Cpfileaccesserror = 98
                              Const Cpinvalidfileposition = 99
                              Const Cpfilesizetogreat = 100

                              Const Cpdrivererrorstart = &HC0


                              ' Range 224 to 255 is reserved for Driver

                              ' Other Constants
                              ' File Open Mode / stored in File-handle return-value of Fileattr(FN#, [1])
                              Const Cpfileopeninput = 1 ' Read
                              Const Cpfileopenoutput = 2 ' Write sequential
                              'Const cpFileOpenRandom = 4 ' not in use yet
                              Const Cpfileopenappend = 8 ' Write sequential; first set Pointer to end
                              Const Cpfileopenbinary = 32 ' Read and Write; Pointer can be changed by user


                              ' permission Masks for file access routine regarding to the file open mode
                              Const Cfilewrite_mode = &B00101010 ' Binary, Append, Output
                              Const Cfileread_mode = &B00100001 ' Binary, Input
                              Const Cfileseekset_mode = &B00100000 ' Binary
                              Const Cfileinputline = &B00100001 ' Binary, Input
                              Const Cfileput_mode = &B00100000 ' Binary
                              Const Cfileget_mode = &B00100000 ' Binary

                              ' Directory attributs in FAT16/32
                              Const Cpfileopenallowed = &B00100001 ' Read Only and Archiv may be set
                              Const Cpfiledeleteallowed = &B00100000
                              Const Cpfilesearchallowed = &B00111101 ' Do no search hidden Files
                              ' Bit 0 = Read Only
                              ' Bit 1 = Hidden
                              ' Bit 2 = System
                              ' Bit 3 = Volume ID
                              ' Bit 4 = Directory
                              ' Bit 5 = Archiv
                              ' Long File name has Bit 0+1+2+3 set
                              Dim Lastdosmem As Byte


                              $lib "AVR-DOS.Lbx"
                              الهم عجل لولیک الفرج

                              فقط 313 نفر...

                              دیدگاه


                                پاسخ : ایجاد فایل بر روی MMC با فرمت Fat16

                                سلام
                                کسی نیست بگه که یه عکس BMP رو چطور می شود به باینری تبدیل کرد؟

                                دیدگاه

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