?? dps2812_eeprom.c.bak
字號(hào):
#include "DSP28_Device.h"
#include "EEPROM.h"
unsigned int Spi_VarRx[155];
unsigned int i,j,i1;
//unsigned int EEPROM_Read1(void);
inline Uint16 EEPROM_Read1(void);
unsigned int *ram_addr = (unsigned int *)0x100000;
unsigned int send_counter,down_counter,page_counter,eeprom_addr;
void main(void)
{
/*初始化系統(tǒng)*/
InitSysCtrl();
/* 關(guān)中斷 */
DINT;
IER = 0x0000;
IFR = 0x0000;
/* 初始化PIE控制寄存器 */
InitPieCtrl();
/* 初始化PIE參數(shù)表 */
InitPieVectTable();
/* 初始化外設(shè)寄存器 */
InitPeripherals();
eeprom_addr = 0x0000;
send_counter = 0;
page_counter = 0;
down_counter = 155; //假設(shè)有的數(shù)據(jù)
for(i = 0; i < 32000; i++)
{
*(ram_addr+i)=i+1;///~~~~~~~~~~~~~~~
}
for(i = 0; i < 155; i++)
{
Spi_VarRx[i] = 0;
}
i = 0;
j = 0;
/* 開(kāi)中斷 */
EINT; // Enable Global interrupt INTM
ERTM; // Enable Global realtime interrupt DBGM
////////////////////////////////////////////////////////
//eeprom按頁(yè)寫(xiě):64字節(jié)/頁(yè)
/*///////////////////////////////////////////////////////
EEPROM_Write_Enable();
EEPROM_Write_write(eeprom_addr);
for(send_counter=0;send_counter!=down_counter;)
{
if(page_counter != 64)
{
SpiaRegs.SPITXBUF =(*(ram_addr+send_counter) << 8) & 0xff00;
delay_time(50); //25000 1500 500 100
page_counter++;
send_counter++;
}
else
{
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;
while((EEPROM_Read_Status()&0x01) == 0x01);
page_counter = 0;
eeprom_addr = eeprom_addr + 64;
EEPROM_Write_Enable();
EEPROM_Write_write(eeprom_addr); //更新寫(xiě)入頁(yè)地址
}
}
GpioDataRegs.GPFDAT.bit.GPIOF3 = 1;//寫(xiě)完
*/
while((EEPROM_Read_Status()&0x01) == 0x01);
while(Spi_TxReady() == 0);
GpioDataRegs.GPFDAT.bit.GPIOF3 = 0;
SpiaRegs.SPITXBUF = READ;
while(Spi_TxReady() == 0);
SpiaRegs.SPITXBUF = 0x0000;
//for(i = 0; i < 10000; i++);
while(Spi_TxReady() == 0);
SpiaRegs.SPITXBUF = 0x0000 << 8;
while(Spi_TxReady() == 0);
SpiaRegs.SPITXBUF = 0x5500;
for(j = 0; j < 100; j++);
while(Spi_RxReady() == 0);
/////////////////////////
for(i1 = 0; i1 < down_counter; i1++)
{
Spi_VarRx[i1] = EEPROM_Read1();
}
for(;;)
{
}
}
//===========================================================================
/*inline Uint16 SPIA_Transmit(void)
{
Uint16 recvData;
while( Spi_TxReady() == 0);
recvData = SPIARegs.SPIRXBUF;
while( Spi_TxReady() == 0);
SPIARegs.SPITXBUF = 0x5500;
for(j = 0; j < 100; j++);
while(Spi_RxReady() == 0);
delay_time(50);
return recvData;
}*/
/////////////////////////////////////////
//unsigned int
inline Uint16 EEPROM_Read1(void)
{
//unsigned int data;
Uint16 data;
data = SpiaRegs.SPIRXBUF;
while(Spi_TxReady() == 0);
SpiaRegs.SPITXBUF = 0x5500;
for(j = 0; j < 100; j++);
while(Spi_RxReady() == 0);
delay_time(50);/////////250
return data;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -