اطلاعیه

Collapse
No announcement yet.

مشکل با sd card

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

    مشکل با sd card

    سلام به همه رفقا

    میخواستم ببینم این کتابخونه ff.h که داخل برنامه codvision هست روی چه میکرو هایی بجز atmega128 کار میده؟

    اخه با هر میکرویی (atmega 8 ,atmega 16 ...) پرو گرم میکنم میگه حافظه میکرو برای این برنامه کم هست oo:

    حالا اگه بخوایم از این کتابخونه استفاده کنیم باید چیکار کنیم

    اینم نمونه برنامه من که برای atmega 8 نوشتم

    کد:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 7/14/2014
    Author : HOSEIN
    Company : 
    Comments: 
    
    
    Chip type        : ATmega8
    Program type      : Application
    AVR Core Clock frequency: 4.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega8.h>
    #include <ff.h>
    #include <delay.h>
    // Timer 0 overflow interrupt service routine
    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    TCNT0=251;
    disk_timerproc();
    TCCR0=0b01000000;
    }
    
    // SPI functions
    #include <spi.h>
    
    // Declare your global variables here
    
    void main(void)
    {
    // Declare your local variables here
    FIL gg;   
    FATFS fat;
    FRESULT fr;
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=Out Func4=In Func3=Out Func2=Out Func1=In Func0=In 
    // State7=T State6=T State5=0 State4=T State3=0 State2=0 State1=T State0=T 
    PORTB=0x00;
    DDRB=0x2C;
    
    // Port C initialization
    // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // 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=Out Func1=Out Func0=Out 
    // State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0 
    PORTD=0x00;
    DDRD=0x07;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 500.000 kHz
    TCCR0=0x02;
    TCNT0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 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: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    MCUCR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x01;
    
    // USART initialization
    // USART disabled
    UCSRB=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    // ADC initialization
    // ADC disabled
    ADCSRA=0x00;
    
    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 1000.000 kHz
    // SPI Clock Phase: Cycle Start
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x50;
    SPSR=0x00;
    
    // TWI initialization
    // TWI disabled
    TWCR=0x00;
    
    // Global enable interrupts
    #asm("sei")
    f_mount(0,&fat);
    fr= f_open(&gg,"0:/message.txt", FA_READ);
    if(fr==0){
    PORTD.0=1;
    delay_ms(300);
    }
    else{
    PORTD.1=1;
    delay_ms(300);
    }
    while (1)
       {
       // Place your code here
    
       }
    }

    #2
    پاسخ : مشکل با sd card

    این کتابخونه برای میکرو های با رم اجرایی کم اصلا جواب نمیده، برای کمتر از مگا64 نمیتونید از ff.h استفاده کنید، بجاش برای میتونید از pff.h برای هر میکرو استفاده کنید. pff همون ff هستش که توابع غیر ضروری رو حذف کرده. توی این تاپیک آموزش کاملش هست:
    http://www.eca.ir/forum2/index.php?topic=91776.0
    انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

    دیدگاه

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