[an error occurred while processing this directive]
|
Я правильно понял - задаем базовый адрес. а потом сколько ни подаем тактовой, флешка по кругу всего адресного пространства шлет байты?
Не могу понять задаю адрес 0, длинну F0 - возвращает FF, тоже самое с адресом F0. А стоит задать адрес 0х100, шлет правильные данные. С буфером все в порядке - читается правильно. Мой код:
void AT45_Flash_Read(unsigned int page, unsigned int addr_on_page, unsigned int bcnt, unsigned char *buf)
{
/*
unsigned int page = addr/4096;
unsigned int addr_on_page = addr%528;
*/unsigned char i;
AT45_ON;
SPI_Write_Byte(AT45_OP_CONTINUOUS_ARRAY_READ);
SPI_Write_Byte((unsigned char)(page > > 8));
SPI_Write_Byte((unsigned char)((page < < 2)|(addr_on_page > > 8)));
SPI_Write_Byte((unsigned char)addr_on_page);
SPI_Write_Byte(0);
SPI_Write_Byte(0);
SPI_Write_Byte(0);
SPI_Write_Byte(0);i = 0;
do
{
*(buf + i) = SPI_Read_Byte();
i++;
}while(iAT45_OFF;
}