
Appendix 2
9(15)
SPIM_SendTxData(0x00); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x00); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x00); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x00); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x95); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
Rdata = SPIM_bReadRxData();
CS_toggle();
}
CS_toggle();
}
// Function description----------------------------------------
// Toggles the chip select of the SD card while writing commands.
void CS_toggle(void)
{
SD_SS_Switch(1); // SS port HIGH, SS off
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SD_SS_Switch(0); // SS port LOW, SS on
}
// Function description----------------------------------------
// Write command structure. High byte + 6 byte command + 2 high bytes.
void write_data_init(BYTE loc1, BYTE loc2, BYTE loc3, BYTE loc4)
{
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x59); // set message to transmit // CMD 25(59) Continuous write
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(loc1); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(loc2); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(loc3); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(loc4); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0x95); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
SPIM_SendTxData(0xFF); // set message to transmit
while(!(SPIM_bReadStatus() & SPIM_SPIM_SPI_COMPLETE)){};
}
Kommentare zu diesen Handbüchern