Не получилось...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Михаил Е. 05 августа 2005 г. 17:04
В ответ на: Поподробнее отправлено <font color=gray>Михаил Е.</font> 05 августа 2005 г. 16:56



//**************** из буфера 1 в ПЗУ ****************
void AT45DB081::Buf1ToMain(unsigned int page)
{
while(!FlashReady); // ждем конец операции
SS = 0;
spi = 0x83; // код операции
spi = (page>>7)&0x1f; // старш. часть адреса страницы
spi = (page<<1)&0xfe; // младш. часть адреса страницы
spi = 0; // don’t care bits
SS = 1; // начали пересылку
}
//**************** из ПЗУ в буфер 1 *****************
void AT45DB081::MainToBuf1(unsigned int page)
{
while(!FlashReady); // ждем конец операции
SS = 0;
spi = 0x53; // код операции
spi = (page>>7)&0x1f; // старш. часть адреса страницы
spi = (page<<1)&0xfe; // младш. часть адреса страницы
spi = 0; // don’t care bits
SS = 1; // начали пересылку
}


//***************************************************
char AT45DB081::LoadDir() // загрузка Dir из ПЗУ
{
char *ptr;
char i;
MainToBuf1(0); // читаем 0 страницу
while(!FlashReady); // ждем конец операции
SS = 0; // выбрать устройство
ptr = (char*)&Dir; // указатель на оглавление
spi = 0xd4; // код операции чтение буфера 1
for(i=0;i<4;i++) spi = 0; // чтение с 0 адреса
for(i=0;i<sizeof(Dir);i++)
{ spi = 0; *ptr++ = spi; } // читаем оглавление
SS = 1; // конец чтения
if(CRC16((char*)&Dir,sizeof(Dir)-2)==Dir.crc) return 1; // прочитана правильно
return 0; // оглавления нет
}




Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru