/********************************************************************* * Function: void EEPROM_Read(uint8_t *dest, uint8_t addr, uint8_t count) * * Overview: Reads the EEPROM Starting from "addr" for "count" bytes and * copies data to the address location "dest" * * PreCondition: None * * Input: None * * Output: None * ********************************************************************/ void EEPROM_Read(uint8_t *dest, uint8_t addr, uint8_t count) { uint8_t oldGIEH = INTCONbits.GIEH; INTCONbits.GIEH = 0; MAC_nCS = 0; SPI1_Exchange8bit(SPI_READ); //MCC_SPI SPI1_Exchange8bit(addr); // MCC_SPI while( count ) { *dest++ = SPI1_Exchange8bit(0x00); // MCC_SPI count--; } MAC_nCS = 1; INTCONbits.GIEH = oldGIEH; }
uint8_t SPI1_Exchange8bitBuffer(uint8_t *dataIn, uint8_t bufLen, uint8_t *dataOut) { uint8_t bytesWritten = 0; if(bufLen != 0) { if(dataIn != NULL) { while(bytesWritten < bufLen) { if(dataOut == NULL) { SPI1_Exchange8bit(dataIn[bytesWritten]); } else { dataOut[bytesWritten] = SPI1_Exchange8bit(dataIn[bytesWritten]); } bytesWritten++; } } else { if(dataOut != NULL) { while(bytesWritten < bufLen ) { dataOut[bytesWritten] = SPI1_Exchange8bit(DUMMY_DATA); bytesWritten++; } } } } return bytesWritten; }