#ifndef __SPI_MMC__
#define __SPI_MMC__

#include "Generictypedefs.h"

#define led1 PORTAbits.RA0
#define led2 PORTAbits.RA1


/*	hibajegyzék */
#define IDLE_STATE_TIMEOUT 				1
#define OP_COND_TIMEOUT 				2
#define SET_BLOCKLEN_TIMEOUT 			3
#define WRITE_BLOCK_TIMEOUT 			4
#define WRITE_BLOCK_FAIL 				5
#define READ_BLOCK_TIMEOUT 				6
#define READ_BLOCK_DATA_TOKEN_MISSING 	7
#define DATA_TOKEN_TIMEOUT 				8
#define SELECT_CARD_TIMEOUT 			9
#define SET_RELATIVE_ADDR_TIMEOUT 	   10


void SPI_Init( void );
void SPI_Send( BYTE *Buf, DWORD Length );
void SPI_Receive( BYTE *buf, DWORD Length );
BYTE SPI_ReceiveByte( void );
UINT8 mmc_init(void);
UINT8 mmc_response(BYTE response);
UINT8 mmc_read_block(DWORD block_number);
UINT8 mmc_write_block(DWORD block_number);
UINT8 mmc_wait_for_write_finish(void);




#endif
