flash.c

来自「超声波测距程序」· C语言 代码 · 共 61 行

C
61
字号
#include"SPCE061V004.H"
#define lint long int
#define uint unsigned int
#define uchar unsigned char
#define ulint unsigned long int
#define P_Flash_Ctrl (uint *)0x7555
#define Flash_Data (uint)0xf000

//****************************************************************************************************
// Flash 的页擦除程序 void Flash_erase(uint adr)
// 设计者: 牟联树
// 描  述: Flash 的页擦除程序
// 日  期: 2003.11.22
// 版本号: 1.0
//****************************************************************************************************
void Flash_erase(uint adr)
{
    *P_Flash_Ctrl = 0xaaaa;
    *P_Flash_Ctrl = 0x5511;
    *(uint *)adr = adr;
}
//****************************************************************************************************
// Flash 的字编程程序 void Flash_write(uint adr,uint dat)
// 设计者: 牟联树
// 描  述: Flash 的字编程程序
// 日  期: 2003.11.22
// 版本号: 1.0
//****************************************************************************************************
void Flash_write(uint adr,uint dat)
{
    *P_Flash_Ctrl = 0xaaaa;
    *P_Flash_Ctrl = 0x5533;
    *(uint *)adr = dat;
}
//****************************************************************************************************
// Flash 的字读出程序 uint Flash_write(uint adr)
// 设计者: 牟联树
// 描  述: Flash 的字读出程序
// 日  期: 2003.11.22
// 版本号: 1.0
//****************************************************************************************************
uint Flash_read(uint adr)
{
     return(*(uint *)adr);
}
void Data_copy(int *a,uint b)
{
    int i;
    for(i=0;i<256;i++,a++,b++)
    *a = *(uint *)b;
}
void Data_copy1(int *a,int c)
{
    uint b,i;
    b = Flash_Data;
    for(i=0;i<c;i++)
       b+=0x0100;
    Flash_erase((uint)Flash_Data);
    for(i=0;i<256;i++,a++,b++)
       Flash_write(b,*a);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?