اطلاعیه

Collapse
No announcement yet.

مشکل با کتابخانه sd card میکروی PIC18f452 با mikroc

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

    مشکل با کتابخانه sd card میکروی PIC18f452 با mikroc

    سلام دوستان من میخوام با استفاده از میکروی pic18f452 کتابخانه های mikroc روی sd card داخل یک فایل تکست چیزی بنویسم اما وقتی میخوام کارت حافظه رو initialize کنم برنامه درست کار نمیکنه و مقدار ۲۵۵ رو بر میگردونه که یعنی کارت حافظه شناسایی نشد. برنامم به صورت زیر هستش. ولتاژ ;پایه ها رو که اندازه میگیرم ولتاژ sck رو صفر نشون میده بقیه ولتاژها عادیه اتصالات رو از روی شکل زیر وصل کردم
    کد:
       void usart_sendstring (char *s);
    void usart_sendchar(char chr);
    void usart_init(void);
       sbit Mmc_Chip_Select at LATB4_bit;
       sbit Mmc_Chip_Select_Direction at TRISB4_bit;
       unsigned long size;
       char character[10];
       unsigned char i;
       char err;
      void main()
    {
    usart_init();
    usart_sendstring("start");
    
    
    // Initialize SPI1 module
    /*SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV64, _SPI_DATA_SAMPLE_MIDDLE,_SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);*/
    TRISC &= ~(1<<3); //  set SCK pin as output
    TRISC &= ~(1<<5);//   set SDO pin as output
    TRISC |= (1<<4); // set MISO as input
    SSPCON1 |= (1<<5);
    
    
    
    
    
    
    err= Mmc_Fat_Init();
    if (err==0) 
    {
    usart_sendstring("sd card initialized successfully");
    // reinitialize SPI1 at higher speed
    
    
    SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV4, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
    
    
    }
    else if (err !=0);
    {
    usart_sendstring("sd card initialization failed");
    usart_sendchar(err);
    
    
    }
    Mmc_Fat_Assign("MIKRO007.TXT",0xA0);
    Mmc_Fat_Append();
    Mmc_Fat_Write("Hello world",255);
    Mmc_Fat_Reset(&size);
    for (i=0;i<11;i++);
    {
    Mmc_Fat_Read(&character[i]);
    usart_sendstring(character);
     }
    
    
    
    
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     void usart_init(void)
    {
     TXSTA |= (1<<5);  // Transmit Enable bit
     TXSTA |= (1<<2); // baudrate generator to high speed
     TRISC |=(1<<7);// congifure rx and tx
     TRISC &=~(1<<6);
     RCSTA |= (1<<7); // serial enable bit
     RCSTA |= (1<<4); //        Enabling the reception by setting bit CREN
     SPBRG =129;     // baudrate 9600
    }
    void usart_sendchar(char chr)
    {
    while(!(TXSTA &(1<<1)));
    TXREG=chr;
    }
    
    
    
    
    
    
    void usart_sendstring (char *s)
    {
    while (*s)
    {
      usart_sendchar(*s);
      s++;
    }
    }


    جدیدترین ویرایش توسط JFET2013; ۱۴:۱۶ ۱۴۰۰/۱۰/۲۶. دلیل: وجود یک حرف اضافی در متن
لطفا صبر کنید...
X