?? 3_6_5.c
字號:
#include <msp430x11x1.h>
char value; // 8-bit value to write to segment A
void write_SegA (char value); //函數聲明
void copy_A2B (void); //函數聲明
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停止看門狗
FCTL2 = FWKEY + FSSEL0 + FN0; // 定義FLASH時序發生器輸入時鐘
value = 0; // 將要寫入的數為"0"
while(1)
{
write_SegA(value++); // 寫段A
copy_A2B(); // 拷貝段A 到段 B
}
}
void write_SegA (char value)
{
char *Flash_ptr;
unsigned int i;
Flash_ptr = (char *) 0x1080; // 初始化指針
FCTL1 = FWKEY + ERASE; // 使能擦除操作
FCTL3 = FWKEY; // FLASH解鎖
*Flash_ptr = 0; // 空寫,啟動擦除
FCTL1 = FWKEY + WRT; // 允許寫操作
for (i=0; i<128; i++)
{
*Flash_ptr++ = value; // 循環寫FLASH 128字節(一個信息段的長度)
}
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK; //寫完了,鎖定
}
void copy_A2B (void)
{
char *Flash_ptrA;
char *Flash_ptrB;
unsigned int i;
Flash_ptrA = (char *) 0x1080;
Flash_ptrB = (char *) 0x1000;
FCTL1 = FWKEY + ERASE; // 擦除允許
FCTL3 = FWKEY; // 解鎖
*Flash_ptrB = 0; // 空寫以啟動擦除段B
FCTL1 = FWKEY + WRT; // 允許寫
for (i=0; i<128; i++)
{
*Flash_ptrB++ = *Flash_ptrA++; // 讀出段A的數據寫到段B
}
FCTL1 = FWKEY;
FCTL3 = FWKEY + LOCK; // 寫完鎖定
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -