Поподробнее
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Михаил Е. 05 августа 2005 г. 16:56
В ответ на: Как привильно программировать AT45 отправлено <font color=gray>rs</font> 05 августа 2005 г. 13:13

про SpiTX(0x55); // заполняю память 0х55
Вот кое-какие куски, там готовность правда по выводу определяется.



//**************** èç áóôåðà 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