关闭

MSP430的Flash操作

417人阅读 评论(0) 收藏 举报

#include <msp430x14x.h>

#define uint unsigned int
#define uchar unsigned char

/***********************************************************************************************

 精准的延时程序

***********************************************************************************************/

#define CPU_F ((double)8000000.0)
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

uchar  value;
void write_SegA(char value);
void copy_A2B(void);
/*********************************************************************
      FCTL1:用于控制所有写(编程)或者删除操作的有效位
      FCTL2:主要对进入时序发生器的时钟进行定义
      FCTL3:用于控制FLASH存储器操作,保存相应的状态标志和错误标志
*********************************************************************/

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  FCTL2 = FWKEY + FSSEL_1 + FN_1;//定义原始时钟,W是A5  R 96  选择MCLK,2分频
                                
  value =0;
  while(1)
  {
    write_SegA(value++);//写信息段A
    copy_A2B();         //信息段A复制到信息段B
  }
 
}

/*******************写信息段A******************/
void write_SegA(char value)
{
  char *Flash_ptr;              //定义flash指针
  uint i;
  Flash_ptr = (char *)0x1080;   //定义起始的地址
  FCTL1=FWKEY+ERASE;            //设置允许编程位
  FCTL3=FWKEY;                   //清除LOCK位
  *Flash_ptr = 0;                //空写,启动擦除
  FCTL1=FWKEY+WRT;                //允许写
  for(i=0;i<128;i++)            //写够128个字节
  {
    *Flash_ptr++=value;
  }
  FCTL1=FWKEY;               
  FCTL3=FWKEY+LOCK;           //锁定
}


void copy_A2B(void)
{
  char *Flash_ptrA;
  char *Flash_ptrB;
  uint i;
  Flash_ptrA=(char *)0x1080;
  Flash_ptrB=(char *)0x1000;
  FCTL1=FWKEY+ERASE;            //设置允许编程位
  FCTL3=FWKEY;                     //清除LOCK位
  *Flash_ptrB=0;
  FCTL1=FWKEY+WRT;              //允许写
  for (i=0;i<128;i++)
  {
    *Flash_ptrB++=*Flash_ptrA;
  }
  FCTL1= FWKEY;
  FCTL3=FWKEY+LOCK;         //锁定
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16188次
    • 积分:296
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:11篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论