Funkcie su nasledovne
Kód: Vybrať všetko
void AT25SF041::ReadArray(uint32_t address, uint32_t length, uint8_t *buffer)
{
DF_CS_inactive; /* Make sure to toggle CS signal in order */
DF_CS_active; /* to reset Dataflash command decoder */
/* Send opcode */
spi_transfer(READ_ARRAY_HF);
/* Address (page | offset) */
spi_transfer((uint8_t)((address >> 16) & 0xff));
spi_transfer((uint8_t)((address >> 8) & 0xff));
spi_transfer((uint8_t)(address & 0xff));
spi_transfer(0x00);
for(int i=0; i < length; i++){
buffer[i] = spi_transfer(0x00);
}
}
void AT25SF041::WriteArray(uint32_t address, uint32_t length, uint8_t *buffer){
DF_CS_inactive; /* Make sure to toggle CS signal in order */
DF_CS_active; /* to reset Dataflash command decoder */
/* Send opcode */
spi_transfer(PROGRAM);
/* Address (page | offset) */
spi_transfer((uint8_t)((address >> 16) & 0xff));
spi_transfer((uint8_t)((address >> 8) & 0xff));
spi_transfer((uint8_t)(address & 0xff));
for(int i=0; i < length; i++){
spi_transfer(buffer[i]);
}
EndAndWait();
}
V manualy pisu, ze po zapisu opcode nasleduju tri bajty,ktore v tych funkciach su, ale nejako neviem sa dopocitat o ake hodnoty ide. Skratka nemam skusenost s tymi shiftami.