#include "voltagedropprotect.h"
#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h"
#include "interface.h"
void flashdivint()
{
FCDIV=0x2d;
}
uchar _ubWrite(uchar ubCMD,uchar *pubFlash,uchar *pubRam,uchar ubSize)
{
uchar i;
FSTAT=0x30;//00110000;表示有人试图擦除和编程一个受保护的位置
//在处理任何命令前必须通过将FACCERR位置1
for(i=0;i<ubSize;i++)
{while(!(FSTAT&0x80));//wait for FCBBF bit"1"
// it means the command can write the new brust program command
*pubFlash=*pubRam;
pubFlash++;
pubRam++;
FCMD=ubCMD;
FSTAT=0x80;
}
while(!(FSTAT&0x40));
i=0;
if((FSTAT&0x30)!=0)
{i=0x55;
}
return(i);
}
void flash_ubWrite(uchar *pubFlash,uchar *pubRam,uchar ubSize)
{
_ubWrite( 0x40, pubFlash, pubRam,ubSize);//察除
_ubWrite(0x25, pubFlash, pubRam, ubSize);//突发编程
}
评论0