新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > R8C/1B單片機的Flash編程/擦除掛起功能

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

        作者: 時間:2009-08-07 來源:電子產品世界 收藏
        圖4EW1模式的擦除掛起設定

          在EW1模式下執行擦除指令進行擦除時(典型值為200ms/1K字節塊),CPU雖處于HOLD狀態,但可以接受中斷響應,實現分時擦除。利用這個工作原理,下面給出一個/1B單片機的應用實例,利用Timer(定時器)中斷和擦除掛起功能實現對擦除時間的估算。

        本文引用地址:http://www.104case.com/article/96982.htm

          使用TimerX定時1ms,擦除過程中每1ms掛起一次,進入中斷處理程序并調整計時變量g_Timers。在擦除結束后,g_Timers所存儲的就是擦除時間的估算值。

          例程如下。

          #include "sfr_r81b.h"

          unsigned int g_Timers;//總擦除時間計數變量

          /* 定時器X中斷處理函數 */

          #pragma interrupt timerX_ISR

          void timerX_ISR(){

          g_Timers++;

          }

          /* 檢查DataFlash狀態寄存器 */

          unsigned char checkStatusRegister(){

          return fmr07|fmr06;

          }

          /* 清除DataFlash狀態寄存器 */

          void clearStatusRegister(){

          *((unsigned char *)0x2400) = 0x50;//執行清除狀態寄存器軟件命令

          }

          /* 塊擦除 */

          unsigned char eraseBlock(unsigned int adr){

          unsigned char result="1";

          asm("FCLR I");//關中斷

          fmr01 = 0;

          fmr01 = 1;//進入CPU改寫模式

          fmr11 = 0;

          fmr11 = 1;//設置為EW1模式&nb



        關鍵詞: 瑞薩 R8C Flash

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 九寨沟县| 会理县| 香港| 纳雍县| 新干县| 化隆| 伊春市| 普兰县| 黔南| 内丘县| 于都县| 永丰县| 定远县| 通榆县| 梅河口市| 岱山县| 固阳县| 图木舒克市| 泰州市| 集贤县| 乌苏市| 江油市| 从化市| 深泽县| 湛江市| 灵璧县| 遵义县| 辽中县| 益阳市| 隆林| 莱州市| 竹北市| 襄垣县| 东平县| 佛山市| 阳朔县| 永福县| 德昌县| 南华县| 沧源| 文安县|