اطلاعیه

Collapse
No announcement yet.

اتصال mmc به avr

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

    #16
    پاسخ : اتصال mmc به avr

    اینو بعد از این که برنامه رو خوندم دیدم
    ' MMC pins in SPI mode:
    ' Pin1:ChipSelect(SS),Pin2:MMC input(MOSI),Pin3:GND,Pin4:3V+,
    ' Pin5:Clock(SCK), Pin6:GND, Pin7:MMC output(MISO)
    هالا به نظر شما جواب میده
    انجام پروژه های برنامه نویسی اندروید
    [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
    http://cafebazaar.ir/app/?id=com.atxdroid

    دیدگاه


      #17
      پاسخ : اتصال mmc به avr

      MMC module using the SPI protocol

      عزیز من فقط کافیه مموری شما MMC باشه :angry: :angry: :angry:

      این برنامه واسه mmcه و mmcهم یک استاندارد داره

      ِِDie for Life, Not Live to Die
      Freedom Fighter
      " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

      دیدگاه


        #18
        پاسخ : اتصال mmc به avr

        نوشته اصلی توسط mohsen.hex
        اینو بعد از این که برنامه رو خوندم دیدم
        ' MMC pins in SPI mode:
        ' Pin1:ChipSelect(SS),Pin2:MMC input(MOSI),Pin3:GND,Pin4:3V+,
        ' Pin5:Clock(SCK), Pin6:GND, Pin7:MMC output(MISO)
        هالا به نظر شما جواب میده
        لطفا قبل از خوندن برنامه نظر ندید

        معلومه که جواب میده :angry:
        ِِDie for Life, Not Live to Die
        Freedom Fighter
        " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

        دیدگاه


          #19
          پاسخ : اتصال mmc به avr

          نوشته اصلی توسط chia


          لطفا قبل از خوندن برنامه نظر ندید

          معلومه که جواب میده :angry:
          شما به بزرگی خودتون ببخشید :cry2:
          انجام پروژه های برنامه نویسی اندروید
          [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
          http://cafebazaar.ir/app/?id=com.atxdroid

          دیدگاه


            #20
            پاسخ : اتصال mmc به avr

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

            یه برنامه ی قدیمی و خوب :smile:

            ' Program: MMC.BAS written using Bascom-AVR ver 1.11.6.2
            ' Basic program to interface with a Sandisk
            ' MMC module using the SPI protocol.
            '
            ' ALPHA CODE
            ' **** NOT FOR COMMERCIAL USE *****
            ' Ver. 0.0.9 Aug, 2001
            '
            ' Project Reference: MMC-AT103L
            ' MCU: Atmel AT103L
            ' Software: Bascom-AVR ver 1.11.6.2
            ' Atmel Programmer: STK300 development board set at 3.3v.
            ' ISP and terminal output
            '
            ' Initial Date: July 23, 2001
            ' Projected Completion Date: Unknown
            '
            ' Author: Ranjit Diol
            ' rsdiol@compsys1.com
            ' http://www.compsys1.com/workbench
            '
            '******************************************** *******************
            ' (c) COMPSys, 2001
            ' All Rights Reserved
            '******************************************** *******************

            '
            ' DISCLAIMER: This file is being released as non-commericial
            ' software. It is being provided "AS IS", neither the author,
            ' nor COMPSys shall be held liable for any damages caused
            ' by its use either directly or indirectly in any form or manner.
            '
            '============================================ ===================
            '
            'Brief: The MMC is a 3volt part therefore all data lines
            ' must be conditioned if interfacing with a 5v mcu.
            ' Or, a 3.3v MCU can be used such as the AT103L or the AT90LS8535
            '
            'IMPORTANT NOTE:
            ' In SPI mode the MMC's minimum block size is 512 bytes
            ' therefore data has to be accumulated first either in an eeprom
            ' or in memory before sending it out as a chunk of 512 bytes.
            '
            ' MMC pins in SPI mode:
            ' Pin1:ChipSelect(SS),Pin2:MMC input(MOSI),Pin3:GND,Pin4:3V+,
            ' Pin5:Clock(SCK), Pin6:GND, Pin7:MMC output(MISO)
            ' AT103L pins:
            ' Portb.0 SS,Portb.1 SCK,Portb.2 MOSI, Portb.3 MISO
            '
            '
            '============================================ ==================

            $regfile = "m8def.dat"
            $crystal = 1000000
            $baud = 1200
            Config Lcdpin = Pin , Db4 = Pind.6 , Db5 = Pind.2 , Db6 = Pind.3 , Db7 = Pind.4 , E = Pind.5 , Rs = Pind.7
            Config Lcd = 16 * 2

            Cls

            'Constants
            Const Msbl = 0
            Const Msbh = 1
            Const Dly = 2
            Const Bits8 = 8
            Const Bits16 = 16
            Const Bits32 = 32

            'Variables
            Dim Res(16) As Byte
            Dim Indat(512) As Byte 'Memory buffer for temp storage.
            Dim Dat As Byte
            Dim Resp As Byte
            Dim Resp2 As Word
            Dim I As Word
            Dim J As Word
            Dim X As Byte
            Dim Y As Byte
            Dim K As Byte
            Dim Bout As Byte
            Dim Addr1 As Byte
            Dim Addr2 As Byte
            Dim Addr3 As Byte
            Dim Addr4 As Byte
            Dim Addr As Long
            Dim Saddr As Long
            Dim Eaddr As Long
            Dim ****** As Byte

            'Aliases
            Cs Alias Portb.0
            Clk Alias Portb.1
            Miso Alias Pinb.3 'inp
            Mosi Alias Portb.2 'out

            'Declarations
            Declare Sub Mprint
            Declare Sub Minit
            Declare Sub Mstatus
            Declare Sub Mwrite(byval Bout As Byte , Byval Addr As Long )
            Declare Sub Mread(byval Addr As Long )
            Declare Sub Merase(byval Saddr As Long , Byval Eaddr As Long)

            'AT103 HW SPI Portb0=SS to MMC 1, Portb1=clock to MMC 5, MISO=Portb3 to MMC 7, MOSI=Portb2 to MMC 2

            Config Pinb.0 = Output
            Config Pinb.1 = Output
            Config Pinb.2 = Output
            Config Pinb.3 = Input
            Waitms 300
            Config Spi = Soft , Din = Pinb.3 , Dout = Portb.2 , Ss = Portb.4 , Clock = Portb.1

            Spiinit



            '******** MAIN PROGRAM *************
            Main:

            'Initialize the MMCC
            Minit


            'If you want to use the ERASE routine
            'Uncomment and enter the start/end 32bit address values

            'Call erase subroutine enter StartAddr , EndAddr
            Merase &H00000000 , &H00000FFF


            'call write subroutine as: BYTE-TO-WRITE, 32BIT_ADDRESS
            'Mwrite 65 , &H00000000

            'Call read sub from 512 from address are put in array INDAT
            Mread &H00000000

            'Call print sub print 512 bytes stored in INDAT array
            Mprint


            Xloop:
            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Endloop:
            Goto Endloop

            End 'end program
            '************ END OF PROGRAM **************



            '======= SUB ROUTINES AND FUNCTIONS =======

            '*** INITIALIZATION OF MMC ***
            Sub Minit
            Set Cs
            Dat = &HFF
            For I = 1 To 10
            Shiftout Mosi , Clk , Dat , Msbl
            Next I
            Resp = 255
            Reset Cs

            Cmd0:
            Dat = &H40
            Shiftout Mosi , Clk , Dat , Msbl
            Addr = &H00000000
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &H95
            Shiftout Mosi , Clk , Dat , Msbl
            While Resp <> &H01
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            Lcd "C0:" ; Hex(resp)
            'Initialized
            Set Cs
            Waitms 50
            Reset Cs
            Dat = &HFF

            Cmd1:
            'While Resp <> &H00
            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H41
            Shiftout Mosi , Clk , Dat , Msbl
            Addr = 0
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            'Wend

            Dat = &HFF
            Set Cs
            Lcd "C1:" ; Hex(resp)
            End Sub

            '**** READ routine assumes ADDR uses Status subroutine *****
            Sub Mread(byval Addr As Long)
            Set Cs
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H51
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl

            While Resp <> 0
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            While Resp <> &HFE
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            'Lcd Hex(resp)
            For I = 1 To 512
            Shiftin Miso , Clk , Resp , Msbl
            Indat(i) = Resp
            'Print Hex(resp);
            Next I

            Shiftin Miso , Clk , Resp , Msbl
            Shiftin Miso , Clk , Resp , Msbl

            Set Cs
            Mstatus
            'Return
            End Sub

            '****Block Start Tag / End Tag and ERASE ****
            Sub Merase(byval Saddr As Long , Byval Eaddr As Long)

            'erase first 1024 bytes

            'Block START TAG
            Cmd32:

            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H60
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Saddr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            While Resp <> &H00
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            'Block END TAG
            Cmd33:

            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H61
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Eaddr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            While Resp <> &H00
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            'ERASE SELECTED BLOCK
            Cmd38:
            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H66
            Shiftout Mosi , Clk , Dat , Msbl
            Addr = 0
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            While Resp = 0
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            Mstatus
            End Sub

            '** WRITE Routine assumes ADDR, BOUT uses Status subroutine **
            Sub Mwrite(byval Bout As Byte , Byval Addr As Long)
            Cmd24:
            Set Cs
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H58
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            While Resp <> 0
            Shiftin Miso , Clk , Resp , Msbl
            Wend
            Lcd "C24:" ; Hex(resp)

            Dat = &HFE
            Shiftout Mosi , Clk , Dat , Msbl

            For I = 1 To 512
            Shiftout Mosi , Clk , ****** , Msbl
            Incr ******
            Next I
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl

            'If Y = &H05 write is a success
            Y = Resp And &H0F

            'If Resp = 0 the MMC is busy
            Shiftin Miso , Clk , Resp , Msbl
            While Resp = 0
            Shiftin Miso , Clk , Resp , Msbl
            Wend

            Lowerline

            Lcd "Wr:" ; Hex(y)
            Set Cs
            Mstatus
            End Sub

            'Get MMC Status
            Sub Mstatus
            Cmd13:
            Set Cs
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp , Msbl
            Reset Cs
            Dat = &H4D
            Shiftout Mosi , Clk , Dat , Msbl
            Addr = 0
            Shiftout Mosi , Clk , Addr , Msbl
            Dat = &HFF
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftout Mosi , Clk , Dat , Msbl
            Shiftin Miso , Clk , Resp2 , Msbl
            Print "Status:" ; Hex(resp2)
            Set Cs
            'Return
            End Sub

            Sub Mprint
            For I = 1 To 512
            Print Hex(indat(i));
            Next
            Mstatus
            End Sub
            کار نمیکنه
            ال سی دی روشن نمیشه :angry:
            عملی بستم جواب نداد :angry:
            با پروتوس امتحان کردم جواب نداد :angry:
            میکرو رو atmega103 زدم جواب نداد :angry:

            دارم کلافه میشم :cry:
            انجام پروژه های برنامه نویسی اندروید
            [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
            http://cafebazaar.ir/app/?id=com.atxdroid

            دیدگاه


              #21
              پاسخ : اتصال mmc به avr

              اگه با codevision کارت راه می افته من در خدمتم.....کتابخونه آقای گیلان هم هست.....

              دیدگاه


                #22
                پاسخ : اتصال mmc به avr

                سلام

                اونو بیخیال

                این مدارو همین الان واست بستم

                http://rapidshare.com/files/104507531/mmc.zip.html
                ِِDie for Life, Not Live to Die
                Freedom Fighter
                " ناخود گاه، هریک از ما ، از نامیرائی خود یقین دارد " . فروید

                دیدگاه


                  #23
                  پاسخ : اتصال mmc به avr

                  سلام محسن جان
                  آقا میشه این کتابخانه های آفای گیلان رو بزاری و یک توضیح مفصل هم بدی.
                  راستی کدوم کتابخانه ها بهتره ؟؟ مال آقای فخر یا گیلان ؟؟؟ کدوم راحتره و بهتر؟؟

                  دیدگاه


                    #24
                    پاسخ : اتصال mmc به avr

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

                    http://www.eca.ir/forum2/index.php/topic,8808.msg39314.html#msg39314

                    دیدگاه


                      #25
                      پاسخ : اتصال mmc به avr

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

                      اونو بیخیال

                      این مدارو همین الان واست بستم

                      http://rapidshare.com/files/104507531/mmc.zip.html
                      جیگر جان من از این سر در نیاوردم میشه یه مقدار در موردش توضیح بدی مخصوصا virtual terminal
                      :nerd:
                      انجام پروژه های برنامه نویسی اندروید
                      [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                      http://cafebazaar.ir/app/?id=com.atxdroid

                      دیدگاه


                        #26
                        پاسخ : اتصال mmc به avr

                        نوشته اصلی توسط محسن قاسم پور
                        اگه با codevision کارت راه می افته من در خدمتم.....کتابخونه آقای گیلان هم هست.....
                        دوست عزیز اگه ممکنه یه برنامه که خودت امتحان کردی و سخت افزارش هم تست کردی بزار تا منم امتحان کنم و ببینم مشکل از سخت افزاره یا نر افزار
                        بازم ممنون :nerd:
                        انجام پروژه های برنامه نویسی اندروید
                        [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                        http://cafebazaar.ir/app/?id=com.atxdroid

                        دیدگاه


                          #27
                          پاسخ : اتصال mmc به avr

                          برنامه من با فرمت fat نیست ها...بزارم برات......؟

                          دیدگاه


                            #28
                            پاسخ : اتصال mmc به avr

                            همچنان منتظر پاسخ تان هستم
                            ستاد بیسوادان
                            انجام پروژه های برنامه نویسی اندروید
                            [glow=red,2,300]نرم افزار نقشه های پاور کامپیوتر اندورید[/glow]
                            http://cafebazaar.ir/app/?id=com.atxdroid

                            دیدگاه


                              #29
                              پاسخ : اتصال mmc به avr

                              اختیار داری ....به روی چشم....

                              دیدگاه


                                #30
                                پاسخ : اتصال mmc به avr

                                محسن جان این برنامه رو دیروز برات نوشتم فقط نمیدونستم بدون فرمت fat بکارت میاد یا نه...برای همین نفرستادم.....
                                این برنامه دو قسمت داره که هم میتونی تو پروتوس تست کنی و هم از نظر سخت افزاری...قسمت اول برنامه یه چیزی تو سه تا سکتور مختلف mmc مینویسی و تو قسمت دوم برنامه میتونی هرکدوم از اونها رو با تعویض شماره سکتور بخونی و رو lcd نشون بدی.......
                                قسمت اول (write) :

                                /************************************************** ***
                                This program was produced by the
                                CodeWizardAVR V1.24.6 Professional
                                Automatic Program Generator
                                © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
                                http://www.hpinfotech.com
                                e-mailffice@hpinfotech.com

                                Project :
                                Version :
                                Date : 6/19/2007
                                Author : F4CG
                                Company : F4CG
                                Comments:


                                Chip type : ATmega32
                                Program type : Application
                                Clock frequency : 11.059200 MHz
                                Memory model : Small
                                External SRAM size : 0
                                Data Stack size : 512
                                ************************************************** ***/

                                #include <mega32.h>
                                #include "mmc_lib.h"
                                // Alphanumeric LCD Module functions
                                #asm
                                .equ __lcd_port=0x1B ;PORTA
                                #endasm
                                #include <lcd.h>

                                // SPI functions
                                #include <spi.h>


                                unsigned char buf_mmc[512];
                                unsigned long sector_num;
                                unsigned int i;
                                char a;

                                // Declare your global variables here

                                void main(void)
                                {
                                // Declare your local variables here

                                // Input/Output Ports initialization
                                // Port A initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTA=0x00;
                                DDRA=0x00;

                                // Port B initialization
                                // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=Out
                                // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=0
                                PORTB=0x00;
                                DDRB=0xB1;

                                // Port C initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTC=0x00;
                                DDRC=0x00;

                                // Port D initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTD=0x00;
                                DDRD=0x00;

                                // Timer/Counter 0 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 0 Stopped
                                // Mode: Normal top=FFh
                                // OC0 output: Disconnected
                                TCCR0=0x00;
                                TCNT0=0x00;
                                OCR0=0x00;

                                // Timer/Counter 1 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 1 Stopped
                                // Mode: Normal top=FFFFh
                                // OC1A output: Discon.
                                // OC1B output: Discon.
                                // Noise Canceler: Off
                                // Input Capture on Falling Edge
                                // Timer 1 Overflow Interrupt: Off
                                // Input Capture Interrupt: Off
                                // Compare A Match Interrupt: Off
                                // Compare B Match Interrupt: Off
                                TCCR1A=0x00;
                                TCCR1B=0x00;
                                TCNT1H=0x00;
                                TCNT1L=0x00;
                                ICR1H=0x00;
                                ICR1L=0x00;
                                OCR1AH=0x00;
                                OCR1AL=0x00;
                                OCR1BH=0x00;
                                OCR1BL=0x00;

                                // Timer/Counter 2 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 2 Stopped
                                // Mode: Normal top=FFh
                                // OC2 output: Disconnected
                                ASSR=0x00;
                                TCCR2=0x00;
                                TCNT2=0x00;
                                OCR2=0x00;

                                // External Interrupt(s) initialization
                                // INT0: Off
                                // INT1: Off
                                // INT2: Off
                                MCUCR=0x00;
                                MCUCSR=0x00;

                                // Timer(s)/Counter(s) Interrupt(s) initialization
                                TIMSK=0x00;

                                // Analog Comparator initialization
                                // Analog Comparator: Off
                                // Analog Comparator Input Capture by Timer/Counter 1: Off
                                ACSR=0x80;
                                SFIOR=0x00;

                                // SPI initialization
                                // SPI Type: Master
                                // SPI Clock Rate: 2764.800 kHz
                                // SPI Clock Phase: Cycle Half
                                // SPI Clock Polarity: Low
                                // SPI Data Order: MSB First
                                SPCR=0x50;
                                SPSR=0x00;

                                mmc_init();

                                // LCD module initialization
                                lcd_init(20);

                                while (1)
                                {
                                for(i=0;i<=511;i++){
                                buf_mmc[i]=('m'
                                }
                                sector_num=50;
                                mmc_write(sector_num, buf_mmc);

                                for(i=0;i<=511;i++){
                                buf_mmc[i]=('H'
                                }
                                sector_num=60;
                                mmc_write(sector_num, buf_mmc);

                                for(i=0;i<=511;i++){
                                buf_mmc[i]=('A'
                                }
                                sector_num=70;
                                mmc_write(sector_num, buf_mmc);


                                for(i=0;i<=511;i++){
                                buf_mmc[i]=0;
                                }

                                // mmc_read(sector_num, buf_mmc);
                                // a=buf_mmc[0];
                                lcd_putsf("done"

                                while(1){};

                                };
                                }


                                قسمت دوم (read) :

                                /************************************************** ***
                                This program was produced by the
                                CodeWizardAVR V1.24.6 Professional
                                Automatic Program Generator
                                © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
                                http://www.hpinfotech.com
                                e-mailffice@hpinfotech.com

                                Project :
                                Version :
                                Date : 6/19/2007
                                Author : F4CG
                                Company : F4CG
                                Comments:


                                Chip type : ATmega32
                                Program type : Application
                                Clock frequency : 11.059200 MHz
                                Memory model : Small
                                External SRAM size : 0
                                Data Stack size : 512
                                ************************************************** ***/

                                #include <mega32.h>
                                #include <delay.h>
                                #include "mmc_lib.h"
                                // Alphanumeric LCD Module functions
                                #asm
                                .equ __lcd_port=0x1B ;PORTA
                                #endasm
                                #include <lcd.h>

                                // SPI functions
                                #include <spi.h>

                                // Declare your global variables here


                                unsigned char buf_mmc[512];
                                unsigned long sector_num;
                                unsigned int i;
                                char a;
                                char b;

                                void main(void)
                                {
                                // Declare your local variables here

                                // Input/Output Ports initialization
                                // Port A initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTA=0x00;
                                DDRA=0x00;

                                // Port B initialization
                                // Func7=Out Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=Out
                                // State7=0 State6=T State5=0 State4=0 State3=T State2=T State1=T State0=0
                                PORTB=0x00;
                                DDRB=0xB1;

                                // Port C initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTC=0x00;
                                DDRC=0x00;

                                // Port D initialization
                                // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                                // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                                PORTD=0x00;
                                DDRD=0x00;

                                // Timer/Counter 0 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 0 Stopped
                                // Mode: Normal top=FFh
                                // OC0 output: Disconnected
                                TCCR0=0x00;
                                TCNT0=0x00;
                                OCR0=0x00;

                                // Timer/Counter 1 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 1 Stopped
                                // Mode: Normal top=FFFFh
                                // OC1A output: Discon.
                                // OC1B output: Discon.
                                // Noise Canceler: Off
                                // Input Capture on Falling Edge
                                // Timer 1 Overflow Interrupt: Off
                                // Input Capture Interrupt: Off
                                // Compare A Match Interrupt: Off
                                // Compare B Match Interrupt: Off
                                TCCR1A=0x00;
                                TCCR1B=0x00;
                                TCNT1H=0x00;
                                TCNT1L=0x00;
                                ICR1H=0x00;
                                ICR1L=0x00;
                                OCR1AH=0x00;
                                OCR1AL=0x00;
                                OCR1BH=0x00;
                                OCR1BL=0x00;

                                // Timer/Counter 2 initialization
                                // Clock source: System Clock
                                // Clock value: Timer 2 Stopped
                                // Mode: Normal top=FFh
                                // OC2 output: Disconnected
                                ASSR=0x00;
                                TCCR2=0x00;
                                TCNT2=0x00;
                                OCR2=0x00;

                                // External Interrupt(s) initialization
                                // INT0: Off
                                // INT1: Off
                                // INT2: Off
                                MCUCR=0x00;
                                MCUCSR=0x00;

                                // Timer(s)/Counter(s) Interrupt(s) initialization
                                TIMSK=0x00;

                                // Analog Comparator initialization
                                // Analog Comparator: Off
                                // Analog Comparator Input Capture by Timer/Counter 1: Off
                                ACSR=0x80;
                                SFIOR=0x00;

                                // SPI initialization
                                // SPI Type: Master
                                // SPI Clock Rate: 2764.800 kHz
                                // SPI Clock Phase: Cycle Half
                                // SPI Clock Polarity: Low
                                // SPI Data Order: MSB First
                                SPCR=0x50;
                                SPSR=0x00;

                                mmc_init();

                                // LCD module initialization
                                lcd_init(20);

                                while (1)
                                {
                                sector_num=60;
                                mmc_read(sector_num,buf_mmc);
                                a=buf_mmc[0];


                                lcd_putchar(a);
                                delay_ms(500);
                                while(1){};

                                };
                                }


                                دیدگاه

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