static void xmit_mmc ( BYTE d /* Data to be sent */ ) { #if BITBANG if (d & 0x80) DI_H(); else DI_L(); /* bit7 */ CK_H(); CK_L(); if (d & 0x40) DI_H(); else DI_L(); /* bit6 */ CK_H(); CK_L(); if (d & 0x20) DI_H(); else DI_L(); /* bit5 */ CK_H(); CK_L(); if (d & 0x10) DI_H(); else DI_L(); /* bit4 */ CK_H(); CK_L(); if (d & 0x08) DI_H(); else DI_L(); /* bit3 */ CK_H(); CK_L(); if (d & 0x04) DI_H(); else DI_L(); /* bit2 */ CK_H(); CK_L(); if (d & 0x02) DI_H(); else DI_L(); /* bit1 */ CK_H(); CK_L(); if (d & 0x01) DI_H(); else DI_L(); /* bit0 */ CK_H(); CK_L(); #else SPIC.DATA = d; while(!(SPIC.STATUS & SPI_IF_bm)); #endif }
static void xmit_mmc ( BYTE d /* Data to be sent */ ) { #if AXI_SPI //xil_printf("xmit_mmc\r\n"); XStatus Status = XSpi_Transfer(&Spi, &d, 0, 1); if(Status != XST_SUCCESS) { xil_printf("Error in write transfer\r\n"); } //DLY_US(1); #else if (d & 0x80) DI_H(); else DI_L(); /* bit7 */ CK_H(); CK_L(); if (d & 0x40) DI_H(); else DI_L(); /* bit6 */ CK_H(); CK_L(); if (d & 0x20) DI_H(); else DI_L(); /* bit5 */ CK_H(); CK_L(); if (d & 0x10) DI_H(); else DI_L(); /* bit4 */ CK_H(); CK_L(); if (d & 0x08) DI_H(); else DI_L(); /* bit3 */ CK_H(); CK_L(); if (d & 0x04) DI_H(); else DI_L(); /* bit2 */ CK_H(); CK_L(); if (d & 0x02) DI_H(); else DI_L(); /* bit1 */ CK_H(); CK_L(); if (d & 0x01) DI_H(); else DI_L(); /* bit0 */ CK_H(); CK_L(); #endif }