📄 untitled1.c
字号:
//FLASH 程序 首先擦除信息存储器A段 然后向A中写入一个能够增加1的数值
//再将信息存储器A拷贝到B段中 因此 A中的数值比B中的数值大1
#include<msp430x44x.h>
char value;//写到段A的数值
void write_SegA(char value);//声明写函数
void copy_A2B(void);//声明拷贝函数
//主函数
void main(void)
{
WDTCTL=WDTHOLD+WDTPW;
FCTL2=FWKEY+FSSEL0+FN0;//FLASH的时间产生器频率为主时钟的1/2
value=0;//初始化写入段A的数值
write_SegA(value);//调用写函数
copy_A2B();//调用拷贝函数
_NOP();//设置断点
}
//写函数
void write_SegA(char value)
{
char *Flash_ptr;//Flash指针变量
unsigned int i;//循环变量
Flash_ptr=(char*)0x1080;//初始化Flash指针变量
//启动摖除
FCTL1=FWKEY+ERASE;//设置摖除操作ERASE=1 MRASE=0 摖除段
FCTL3=FWKEY;//解锁 LOCK=0 不加锁时 可摖除可写入
*Flash_ptr=0;//启动摖除
//设置写操作
FCTL1=FWKEY+WRT;
for(i=0;i<128;i++)
{
*Flash_ptr++=value++;
}
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;
//设置写操作
FCTL1=FWKEY+WRT;
for(i=0;i<128;i++)
{
*Flash_ptrB++=*Flash_ptrA++;
}
FCTL1=FWKEY;//
FCTL3=FWKEY+LOCK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -