?? msp430_flash.c
字號:
#include <msp430x14x.h>
#include "Msp430_Flash.h"
#include "General.h"
/********************************************************\
* 函數名:Init_OperFlash()
作用域:外部文件調用
\********************************************************/
void Init_OperFlash(void)
{
WDTCTL=WDTPW+WDTHOLD; //關閉看門狗WDT ,WDTPW看門狗的口令
FCTL2 = FWKEY + FSSEL1 + FN0;
}
/********************************************************\
* 函數名:Write_SegAB()
作用域:外部文件調用
\********************************************************/
void Write_SegAB(unsigned char Address_Flag)
{
char *Flash_ptr;
unsigned int i;
if(Address_Flag==0)
{
Flash_ptr = (char *)0x1080; //初始化指針
}
else if(Address_Flag==1)
{
Flash_ptr = (char *)0x1000; //初始化指針
}
else
{
return;
}
_DINT(); //關閉其他所有中斷
FCTL1 = FWKEY + ERASE; //使能擦除操作
FCTL3 = FWKEY; //FLASH解鎖
*Flash_ptr = 0; //空寫,啟動擦除
FCTL1 = FWKEY + WRT; //允許寫操作
for(i=0;i<128;i++)
{
*Flash_ptr++=gGeneral_Buffer[i];
}
FCTL1 = FWKEY;
FCTL3 = FWKEY+LOCK; //寫完了,鎖定
_EINT(); //開啟其他所有中斷
}
/********************************************************\
* 函數名:Erase_SegAB()
作用域:外部文件調用
\********************************************************/
void Read_SegAB(unsigned char Address_Flag)
{
unsigned char *Flash_ptr;
unsigned int i;
if(Address_Flag==0)
{
Flash_ptr = (unsigned char *)0x1080; //初始化指針
}
else if(Address_Flag==1)
{
Flash_ptr = (unsigned char *)0x1000; //初始化指針
}
else
{
return;
}
for(i=0;i<128;i++)
{
gGeneral_Buffer[i]=*Flash_ptr++;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -