新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > R8C/1B單片機(jī)的Flash編程/擦除掛起功能

R8C/1B單片機(jī)的Flash編程/擦除掛起功能

作者: 時(shí)間:2009-08-07 來(lái)源:電子產(chǎn)品世界 收藏

  sp;

本文引用地址:http://butianyuan.cn/article/96982.htm

  fmr40 = 0;

  fmr40 = 1;//允許中斷擦除掛起

  asm("FSET I");//開中斷

  g_Timers = 0;//計(jì)數(shù)值清零

  prex=0x32-1;tx=0x32-1;//定時(shí)值1ms

  txs=1;//定時(shí)器X開始計(jì)數(shù)

  *((unsigned char *)adr) = 0x20;//執(zhí)行塊擦除軟件命令

  *((unsigned char *)adr) = 0xD0;

  while(fmr00 != 1){//判斷擦除是否結(jié)束

  fmr41 = 0;//中斷返回后繼續(xù)擦除

  }

  txs=0;//定時(shí)器X停止計(jì)數(shù)

  fmr01 = 0;//退出CPU改寫模式

  if(!checkStatusRegister()){//查看狀態(tài)寄存器

  result = 0;//擦除成功

  }

  else //擦除失敗

  clearStatusRegister();//清除狀態(tài)寄存器

  return result;

  }

  /* 對(duì)MCU進(jìn)行初始化 */

  void initMCU(){

  unsigned char i="0";

  asm("FCLR I");//關(guān)中斷

  //將CPU時(shí)鐘切換為主時(shí)鐘20MHz

  prcr = 1;//解除對(duì)cm0,cm1,ocd寄存器的寫保護(hù)

  cm13 = 1;//接通 Xin-Xout

  cm15 = 1;//Xin-Xout驅(qū)動(dòng)能力:高

  cm05 = 0;//Xin-Xout啟動(dòng)

  cm16 = 0;//無(wú)分頻模式

  cm17 = 0;

  cm06 = 0;//使CM16,CM17有效

  while(1){//等待主時(shí)鐘振蕩穩(wěn)定

  if(!ocd3){

  if(i>=10) break;

  else ++i;

  }

  }

  ocd2 = 0;//選擇主時(shí)鐘

  prcr = 0;//設(shè)定對(duì)cm0,cm1,ocd寄存器的寫保護(hù)

  //設(shè)置定時(shí)器

  txmr=0x00;//定時(shí)器X設(shè)為定時(shí)器模式

  tcss=0x11;//選擇計(jì)數(shù)源為f8

  txic=0x07;//定時(shí)器X中斷優(yōu)先級(jí)為7

  asm("FSET I");//開中斷

  }

  /* 主函數(shù) */

  void main(void)

  {

  unsigned char flag;

  initMCU();//對(duì)MCU進(jìn)行初始化

  flag = eraseBlock(0x2400);//擦除大小為1kB的塊A,塊首地址為2400H

  while (1);

  }



關(guān)鍵詞: 瑞薩 R8C Flash

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉