سلام دوستان من میخوام با استفاده از میکروی 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++;
}

