[an error occurred while processing this directive]
|
Пробовал по всякому и с таймером и с NOP - задержка куда-то исчезает, чтобы я ни делал, получается стабильно 5,2 мкс. В тексте флаг 8 выведен для диагностики времени задержки. Это сабрутина для стирания сектора памяти во внешней флеши. Может кто разгадает в чем дело? Смотрел в dxe - код точно как написан.
///////////////////////////////////////////////////////////////////////////////
void EMErase(UINT sector)//erase sector before writing!
{
UINT i;
//-----------------------------------------------------------------------------
//Sector Erase: 555 AA 2AA 55 555 80 555 AA 2AA 55 SA 30
external_memory_write(0x81, 0x555, 0xAA);
external_memory_write(0x81, 0x2AA, 0x55);
external_memory_write(0x81, 0x555, 0x80);
external_memory_write(0x81, 0x555, 0xAA);
external_memory_write(0x81, 0x2AA, 0x55);
external_memory_write(0x81, sector, 0x30);
//-----------------------------------------------------------------------------
//time delay > 50 uS!
//????????????????????????????????????????????
asm ("
IOPG = General_Purpose_IO;
AY0 = 0x0100;//PF8 = BANK0
IO(FLAGS ) = AY0;//Peripheral Interrupt Flag Register set
");//asm
//????????????????????????????????????????????
for(i = 0;i < 0xFFFF;i++)
{
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
asm("NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;");
}
//????????????????????????????????????????????
asm ("
IOPG = General_Purpose_IO;
AY0 = 0x0100;//PF8 = BANK0
IO(FLAGC ) = AY0;//Peripheral Interrupt Flag Register set
");//asm
//????????????????????????????????????????????
}
///////////////////////////////////////////////////////////////////////////////
E-mail: info@telesys.ru