Заполняю массив Fdata 528 байт данными и выполняю функцию WriteFlash, где page номер страницы.Читаю в тот-же массив функцией Read_Flash_Page.Может что делаю не так?
void Read_Flash_Page(LPC_INT16U page)
{LPC_INT16U adr=0,delay=50;
SSPCR0_bit.CPOL=1;// 0 in idle
SSPCR0_bit.CPHA=1;//front edge
Flash_ON;
DELAY(0.9);
OUT_SPI1(MM_PAGE_TO_B1_XFER);
OUT_SPI1(page>>8);
OUT_SPI1((LPC_INT8U)page);
OUT_SPI1(0);
Flash_OFF;
DELAY(0.9);
Flash_ON;
OUT_SPI1(BUFFER_1_READ);
OUT_SPI1(0);
OUT_SPI1((char)adr>>8);
OUT_SPI1((char)adr);
while(adr<528)
{
OUT_SPI1(0);
Fdata[adr]=SSPDR;
adr++;
}
Flash_OFF;
SSPCR0_bit.CPOL=0;// 0 in idle
SSPCR0_bit.CPHA=0;//front edge
}
void WriteFlash(LPC_INT16U page)
{LPC_INT16U adr=0;
SSPCR0_bit.CPOL=1;// 0 in idle
SSPCR0_bit.CPHA=1;//front edge
Flash_ON;
OUT_SPI1(BUFFER_1_WRITE);
OUT_SPI1(0);
OUT_SPI1(adr>>8);
OUT_SPI1((LPC_INT8U)adr);
while(adr<528)
{
OUT_SPI1(Fdata[adr]);
adr++;
}
Flash_OFF;
Flash_ON;
OUT_SPI1(B1_TO_MM_PAGE_PROG_WITH_ERASE);
OUT_SPI1(page>>8);
OUT_SPI1((LPC_INT8U)page);
OUT_SPI1(0);
Flash_OFF;
DELAY(0.9);
SSPCR0_bit.CPOL=0;// 0 in idle
SSPCR0_bit.CPHA=0;//front edge
}