اطلاعیه

Collapse
No announcement yet.

mmc و FAT32

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

    mmc و FAT32

    دوستان کمک
    چند روزیه با کله رفتم تو mmc بلکن بتونم یک فایل txt در mmc ایجاد کنم . البته من تونستم یک سری از توابع AVR را برای PIC دیکد کنم و تو مموری بخونم و بنویسم ، اما حالا بسیار مشتاق ایجاد یک فایل txt در mmc هستم .
    در ضمن من با کامپایلر Mplab C18 کار می کنم
    دوستان لطفا راهنمایی کنید . و اگر بتوانید درایور یا توابع آن را به من بدهید لطف بزرگی کرده اید
    *** کم رنگ ترن قلم جهان از. پررنگ ترن حافظه  جهان ماندگارتر است ***

    #2
    پاسخ : mmc و FAT32

    سلام
    اینها رو بخونید توضیحات کاملی دارن

    http://s5.picofile.com/file/8111133384/mmc_sd.pdf.html
    http://s5.picofile.com/file/8111132992/fat.rar.html
    http://www.eca.ir/forum2/index.php?topic=62452.0

    (لینک ها اصلاح شده است)

    :bye

    [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

    دیدگاه


      #3
      پاسخ : mmc و FAT32

      با عرض سلام. :sad:
      میشه لطفاّ خواهشا اون طریقه خواندن نوشتنشو بمنم بگین .
      چون بنده دو هفتس پدرم در اومده نتونستم تو MMC بنویسم هیچ ختی نتونستم MMC رو به میکرو بشناسونم.

      دیدگاه


        #4
        پاسخ : mmc و FAT32

        مگه فایل فارسی جناب تروشه (pdf) رو نخوندید؟ (دومین لینک)
        توش همه کارها هست . خوندن و نوشتن و اینیت کردن
        البته من خودم هم توی خوندن هر مدلی مشکلی ندارم ولی منم هنوز نتونستم برای نوشتن کتابخونه بنویسم :angry:

        [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

        دیدگاه


          #5
          پاسخ : mmc و FAT32

          رفتم خوندم
          ولی اونا همش اسمبل هست.بسکام کتابخونه هاشو داره بنده خودم از اونا استفاده می کنم.
          و اینکه بنده اسمبل بلد نیستم :sad:
          کسی هس که با بسکام کار کرده باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

          دیدگاه


            #6
            پاسخ : mmc و FAT32

            رفتم خوندم
            ولی اونا همش اسمبل هست.بسکام کتابخونه هاشو داره بنده خودم از اونا استفاده می کنم.
            و اینکه بنده اسمبل بلد نیستم :sad:
            کسی هس که با بسکام کار کرده باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
            اولا که اون برنامه های اسمبلی برای مثال هستن و روال کار به زبان فارسی نوشته شده که می تونی اونو به هر زبونی در بیاری.
            این برنامه خودم برای خوندن یه سکتوره : (البته قبلش باید mmc رو init کرده باشی
            sub procedure SD_READ_SECTOR(dim sector as longint)
            dim i as byte
            sector=sector*2
            portc.2=0
            SPI_write(0x51)
            SPI_write(higher(sector))
            SPI_write(hi(sector))
            SPI_write(lo(sector))
            SPI_write(0x00)
            SPI_write(0x00)
            while SPI_read(0xff)<>0xfe wend
            for i=0 to 255
            buffer0[2*i]=spi_read(0xff)
            buffer0[2*i+1]=spi_read(0xff)
            next i
            spi_read(255)
            spi_read(255)
            portc.2=1
            end sub
            دوما همیشه کسانی پیدا نمی شن که راحت اطلاعاتشونو در اختیارتون بزارن پس بهتره تا اونجایی که میتونیم هو خودمون تلاش کنیم و هم نتایج رو در اختیار دیگران قرار بدیم .خود منم زیاد اسمبلی سر در نمیارم و لی با همون توضیح فارسی جناب تروشه و اطلاعات اون فایلهایی که گذاشتم به سختی راش انداختم .ولی خود من هم هنوز نتونستم توش بنویسم :angry:
            abbasmh دستت درد نکنه ولی من هر کاری می کنم فایل ها دانلود نمیشن لطفا توی یک سایت دیگر Upload ش کن
            من همین الان دیدم لینکها که مشکلی ندارن شاید مرورگر شما مشکل داره؟ :question:
            :bye

            [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

            دیدگاه


              #7
              پاسخ : mmc و FAT32

              من برنامه MMC رو به زبان bascom و C دارمد البته با توضیحات :
              'پروژه خوانده و نوشتن از MMC
              'برای امتحان است و جنبه ی آموزشی دارد
              'خواندن و نوشتن رو یام ام سی به صورت سکتوری است

              'پایه های MMC
              'MMC M32
              '1 MMC_CS
              '2 MOSI
              '3 GND
              '4 +3.3V
              '5 CLOCK
              '6 GND
              '7 MISO

              'شما میتوانید هم از پیکربندی سخت افزاری یا نرم افزاری استفاده کنید


              'پیکر بندی سخت افزاریcMMC_Soft = 0
              'پیکربندی نرم افزاری: cMMC_Soft = 1

              $regfile = "m32def.dat"
              $crystal = 8000000
              Const Cmmc_soft = 1

              'در این جا به صورت نرم افزاری است
              Config Portd = Output

              #if Cmmc_soft = 0

              ' --------- پیکر بندی سخت افزاری ----------------------------------------

              ' Chip-Select مشخص کردن پایه
              Config Pinb.2 = Output
              Mmc_cs Alias Portb.2
              Set Mmc_cs

              'مشخص کردن پایه SS
              Config Pinb.2 = Output
              Spi_ss Alias Portb.2
              Set Spi_ss


              ' پیکر بندی SPI
              Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
              Spsr = 1
              Spiinit 'عمل برقراری ارتباط

              ' --------- اتمام ------------------------------------------

              #else

              ' --------- پیکر بندی نرم افزاری --------------------------------------

              ' پایه یک از MMC/SD
              ' Chip-Select مشخص کردن پایه
              Config Pinb.0 = Output
              Mmc_cs Alias Portb.0
              Set Mmc_cs

              ' MOSI پایه دو از MMC/SD
              Config Pinb.2 = Output
              Set Pinb.2
              Mmc_portmosi Alias Portb
              Bmmc_mosi Alias 2

              ' MISO پایه سه MMC/SD
              Config Pinb.3 = Input
              Mmc_portmiso Alias Pinb
              Bmmc_miso Alias 3

              ' SCK پایه سه از MMC/SD
              Config Pinb.1 = Output
              Set Pinb.1
              Mmc_portsck Alias Portb
              Bmmc_sck Alias 1

              ' --------- اتمام ----------------------------------------

              #endif

              ' ========== پایان پیکر بندی =======================================


              ' خطاها
              Const Cperrdrivereset = 225
              Const Cperrdriveinit = 226
              Const Cperrdrivereadcommand = 227
              Const Cperrdrivewritecommand = 228
              Const Cperrdrivereadresponse = 229
              Const Cperrdrivewriteresponse = 230
              Const Cperrdrive = 231
              Const Cperrdrivenotsupported = 232

              Waitms 1
              Dim Gbdriveerror As Byte
              Dim Gbdriveerrorreg As Byte
              Dim Gbdrivestatusreg As Byte
              Dim Gbdrivedebug As Byte
              $lib "MMC.LIB"
              $external _mmc
              Gbdriveerror = Driveinit() 'برقراری ارتباط باMMC
              Gbdriveerror = Drivecheck() 'امتحان برقرراری ارتباط

              'توضیح:اگر خطایی رخ دهد مقدار آن در متغیر ریخته می گردد(Gbdriveerror)

              Dim Abuffer(512) As Byte ' متغیر ارتباطی با سکتور
              Dim Wsrampointer As Word ' آدرس متغیر درحافظه
              Dim Lsectornumber As Long ' سکتور شماره
              Dim I As Integer

              'پر کردن متغیر به صورت دلخواه
              'در ایجا به صورت مثال این طوری پر شده است
              For I = 1 To 512
              If I < 256 Then Abuffer(i) = I Else Abuffer(i) = 255
              Next


              'گرفتن آدرس اولین بایت متغیر از حافظه
              Wsrampointer = Varptr(abuffer(1))

              'شماره سکتور مورد نظر
              'شما می توانید به دلخواه و با توجه به ظرفیت ام ام سی آن را تغییر دهید
              Lsectornumber = 20000

              ' نوشتن مقدار متغیر در سکتور انتخاب شده
              Gbdriveerror = Drivewritesector(wsrampointer , Lsectornumber)


              'خالی کردن متغیر
              For I = 1 To 512
              Abuffer(i) = 0
              Next

              'برای نشان دادن خالی بودن متغیر
              Portd = Abuffer(57)



              'گرفتن آدرس اولین بایت متغیر از حافظه
              Wsrampointer = Varptr(abuffer(1))

              'شماره سکتور مورد نظر
              'شما می توانید به دلخواه و با توجه به ظرفیت ام ام سی آن را تغییر دهید
              Lsectornumber = 20000

              'خواندن از سکتور مورد نظر و ریختن در متغیر
              Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)


              '*
              'نشان دادن یک بایت از سکتور مورد نظر روی پرت برای امتحان کردن
              'برای مثال بایت شماره ی 57 انتخاب شده
              Portd = Abuffer(57)

              End 'اتمام برنامه

              دیدگاه


                #8
                پاسخ : mmc و FAT32

                سلام
                اینو بخونید با میکروهای سری lpc2000 arm رم رو راه انداختخ و به زبان C هست و کامله و معتبر

                http://s5.picofile.com/file/81117198...406_3.pdf.html

                (لینک اصلاح شده است)

                :bye

                [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

                دیدگاه

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