?? flash.c
字號:
//本程序在每個Flash操作子函數中都加入了口線的方向配置。
#include "msp430x14x.h"
#include "flash.h"
//****************************************************
//往FLASH中寫入sequential data input命令字
//****************************************************
void WriteSequentialDataInputCommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashSequentialDataInput;
FlashControlPort=CommandInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入讀模式1命令字并選中A區
//****************************************************
void WriteRead1ACommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashRead1A;
FlashControlPort=CommandInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入讀模式1命令字并選中B區
//****************************************************
void WriteRead1BCommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashRead1B;
FlashControlPort=CommandInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入讀模式2命令字并選中C區
//****************************************************
void WriteRead2CommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashRead2;
FlashControlPort=CommandInputInReadMode&(~FlashSE);
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//讀取FLASH的ID
//****************************************************
void WriteReadIDCommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashReadID;
FlashControlPort=CommandInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入復位命令字
//****************************************************
void WriteReadResetCommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashReset;
FlashControlPort=CommandInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入塊擦除命令字
//****************************************************
void WriteBlockEraseCommandToFlash(unsigned short FlashRowAddress)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashBlockErase1cycle;
FlashControlPort=CommandInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=FlashRowAddress;
FlashControlPort=AddressInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=(FlashRowAddress>>8);
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=FlashBlockErase2cycle;
FlashControlPort=CommandInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入讀取狀態命令字
//****************************************************
void WriteReadStatusToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashReadStatus;
FlashControlPort=CommandInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入頁編程命令字
//****************************************************
void WritePageProgramCommandToFlash(void)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashPageProgram;
FlashControlPort=CommandInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入地址的程序(讀模式)
//****************************************************
void WriteReadModeAddressToFlash(unsigned short FlashRowAddress,unsigned short FlashColumnAddress)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashColumnAddress;
FlashControlPort=AddressInputInReadMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=FlashRowAddress;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=(FlashRowAddress>>8);
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//往FLASH中寫入地址的程序(讀模式)
//****************************************************
void WriteWriteModeAddressToFlash(unsigned short FlashRowAddress,unsigned short FlashColumnAddress)
{
DataPortDirection=0xFF;
ControlPortDirection=(~FlashRB);
OutputToFlash=FlashColumnAddress;
FlashControlPort=AddressInputInWriteMode;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=FlashRowAddress;
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
OutputToFlash=(FlashRowAddress>>8);
FlashControlPort&=~FlashWE;
FlashControlPort|=FlashWE;
}
//****************************************************
//為讀取數據作準備
//****************************************************
void PrepareForReadDataFromFlash(void)
{
ControlPortDirection=(~FlashRB);
FlashControlPort=PrepareForDataOutput&(~FlashSE);
}
//****************************************************
//寫入數據到Flash作準備(不包括C區域)
//****************************************************
void PrepareForWriteDataToFlashNoCArea(void)
{
ControlPortDirection=(~FlashRB);
FlashControlPort=PrepareForDataInput|FlashSE;
}
//****************************************************
//寫入數據到Flash作準備(包括C區域)
//****************************************************
void PrepareForWriteDataToFlashIncludeCArea(void)
{
ControlPortDirection=(~FlashRB);
FlashControlPort=PrepareForDataInput&(~FlashSE);
}
//****************************************************
//組合函數
//****************************************************
//****************************************************
//讀取Flash中的狀態寄存器,其中返回值在InputDataFromFlash中
//****************************************************
void ReadStatusFromFlash(void)
{
WriteReadStatusToFlash();
DataPortDirection&=~0xFF;
FlashControlPort&=~FlashRE;
FlashControlPort|=FlashRE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -