|
|
|
|
@ -9,15 +9,15 @@ mail@ulrichradig.de
|
|
|
|
|
|
|
|
|
|
oder im Forum meiner Web Page : www.ulrichradig.de
|
|
|
|
|
|
|
|
|
|
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der
|
|
|
|
|
GNU General Public License, wie von der Free Software Foundation veröffentlicht,
|
|
|
|
|
weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder
|
|
|
|
|
(nach Ihrer Option) jeder späteren Version.
|
|
|
|
|
Dieses Programm ist freie Software. Sie können es unter den Bedingungen der
|
|
|
|
|
GNU General Public License, wie von der Free Software Foundation veröffentlicht,
|
|
|
|
|
weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder
|
|
|
|
|
(nach Ihrer Option) jeder späteren Version.
|
|
|
|
|
|
|
|
|
|
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung,
|
|
|
|
|
daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE,
|
|
|
|
|
Die Veröffentlichung dieses Programms erfolgt in der Hoffnung,
|
|
|
|
|
dass es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE,
|
|
|
|
|
sogar ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT
|
|
|
|
|
FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
|
|
|
|
|
FÜR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.
|
|
|
|
|
|
|
|
|
|
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
|
|
|
|
|
Programm erhalten haben.
|
|
|
|
|
@ -115,7 +115,7 @@ unsigned char mmc_write_command (unsigned char *cmd)
|
|
|
|
|
mmc_write_byte(*cmd++);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Wartet auf ein gültige Antwort von der MMC/SD-Karte
|
|
|
|
|
//Wartet auf ein gültige Antwort von der MMC/SD-Karte
|
|
|
|
|
while (tmp == 0xff)
|
|
|
|
|
{
|
|
|
|
|
tmp = mmc_read_byte();
|
|
|
|
|
@ -133,12 +133,12 @@ unsigned char mmc_read_byte (void)
|
|
|
|
|
//############################################################################
|
|
|
|
|
{
|
|
|
|
|
unsigned char Byte = 0;
|
|
|
|
|
#if SPI_Mode //Routine für Hardware SPI
|
|
|
|
|
#if SPI_Mode //Routine für Hardware SPI
|
|
|
|
|
SPDR = 0xff;
|
|
|
|
|
while(!(SPSR & (1<<SPIF))){};
|
|
|
|
|
Byte = SPDR;
|
|
|
|
|
|
|
|
|
|
#else //Routine für Software SPI
|
|
|
|
|
#else //Routine für Software SPI
|
|
|
|
|
for (unsigned char a=8; a>0; a--) //das Byte wird Bitweise nacheinander Empangen MSB First
|
|
|
|
|
{
|
|
|
|
|
MMC_Write &=~(1<<SPI_Clock); //erzeugt ein Clock Impuls (Low)
|
|
|
|
|
@ -163,12 +163,12 @@ unsigned char mmc_read_byte (void)
|
|
|
|
|
void mmc_write_byte (unsigned char Byte)
|
|
|
|
|
//############################################################################
|
|
|
|
|
{
|
|
|
|
|
#if SPI_Mode //Routine für Hardware SPI
|
|
|
|
|
#if SPI_Mode //Routine für Hardware SPI
|
|
|
|
|
SPDR = Byte; //Sendet ein Byte
|
|
|
|
|
while(!(SPSR & (1<<SPIF))) //Wartet bis Byte gesendet wurde
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#else //Routine für Software SPI
|
|
|
|
|
#else //Routine für Software SPI
|
|
|
|
|
for (unsigned char a=8; a>0; a--) //das Byte wird Bitweise nacheinander Gesendet MSB First
|
|
|
|
|
{
|
|
|
|
|
if (bit_is_set(Byte,(a-1))>0) //Ist Bit a in Byte gesetzt
|
|
|
|
|
@ -198,7 +198,7 @@ unsigned char mmc_write_sector (unsigned long addr,unsigned char *Buffer)
|
|
|
|
|
|
|
|
|
|
/*Die Adressierung der MMC/SD-Karte wird in Bytes angegeben,
|
|
|
|
|
addr wird von Blocks zu Bytes umgerechnet danach werden
|
|
|
|
|
diese in das Commando eingefügt*/
|
|
|
|
|
diese in das Commando eingefügt*/
|
|
|
|
|
|
|
|
|
|
addr = addr << 9; //addr = addr * 512
|
|
|
|
|
|
|
|
|
|
@ -284,7 +284,7 @@ unsigned char mmc_read_sector (unsigned long addr,unsigned char *Buffer)
|
|
|
|
|
|
|
|
|
|
/*Die Adressierung der MMC/SD-Karte wird in Bytes angegeben,
|
|
|
|
|
addr wird von Blocks zu Bytes umgerechnet danach werden
|
|
|
|
|
diese in das Commando eingefügt*/
|
|
|
|
|
diese in das Commando eingefügt*/
|
|
|
|
|
|
|
|
|
|
addr = addr << 9; //addr = addr * 512
|
|
|
|
|
|
|
|
|
|
|