查看: 3673|回复: 3

[S12] 求 MC9S12G128 eeprom 实例

[复制链接]

该用户从未签到

17

主题

64

帖子

0

新手上路

Rank: 1

积分
155
最后登录
1970-1-1
发表于 2013-9-25 16:25:51 | 显示全部楼层 |阅读模式
 大家好,关于MC9S12G128 的参考资料太少了,现在最近在研究MC9S12G128  但关于eeprom的操作一点资料也没找到,求哪位大侠发个例子学习学习,多谢了
我知道答案 目前已有3人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-9-26 11:11:16 | 显示全部楼层

    RE:求 MC9S12G128 eeprom 实例

    S12系列的都可以作为参考。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    64

    帖子

    0

    新手上路

    Rank: 1

    积分
    155
    最后登录
    1970-1-1
     楼主| 发表于 2013-9-27 08:53:20 | 显示全部楼层

    回复:求 MC9S12G128 eeprom 实例

    //=============================================================================================
    //对 EEPROM 初始化
    void EEPROM_init(void){
       ECLKDIV=0x4A;                   // 晶振:16M/8=2M,2M/(1+10)=181.8k: 150k--200k                                    
       ECNFG=0x00;                     // disable eeprom operate interrupt 中断关闭
       while(ECLKDIV_EDIVLD == 0);     // wait stedy  ECLKDIV_EDIVLD为1 表示时钟设置好了
       EPROT_EPOPEN=1;                 //全部EEPROM不保护,0:全部保护
       EPROT_EPDIS=1;                  // 1:EEPROM开放 。 0:保护(但有EPROT[2-0]设定保护范围)
       //EPROT[2-0]保护范围111-000 :512-64B 。从0X7FF顶往下 。
    }
    //----------------------------------------------------------------------------------------------
    void Erase_all_eeprom(void){
       DisableInterrupts;
       while(ESTAT_CBEIF==0);    // ESTAT_CBEIF为1 表示正准备接受命令 。 0:代表缓冲区满 。
     //以下4步是固定的
       *(EEPROM_ADDR_BASE)=0xFFFF; // 先向地址中写入一个字(要编程的数),擦除一般写入0XFF
       ECMD=EEP_Sect_Erase;       //写入命令序列模式字(要擦除还是写入)
       ESTAT_CBEIF=1;             //ESTAT_CBEIF=1 开始命令
       asm nop;
       while(ESTAT_CCIF==0);     // ESTAT_CCIF变1 ,表示命令执行完毕
      
       while(ESTAT_PVIOL);       // ESTAT_PVIOL为1 表示对保护的EEPROM有误操作
       while(ESTAT_ACCERR);      // ESTAT_ACCERR为1 表示非法使用EEPROM
      
       //ESTAT_BLANK 为1是表示命令校验是EEPROM已擦除了
       EnableInterrupts;
    }
    //----------------------------------------------------------------------------------------------
    void Erase_eeprom(unsigned int addr){
       DisableInterrupts;
       while(ESTAT_CBEIF==0);    // ESTAT_CBEIF为1 表示正准备接受命令 。 0:代表缓冲区满 。
     //以下4步是固定的
       *(EEPROM_ADDR_BASE+addr)=0xFFFF; // 先向地址中写入一个字(要编程的数),擦除一般写入0XFF
       ECMD=EEP_Word_Erase;       //写入命令序列模式字(要擦除还是写入)
       ESTAT_CBEIF=1;             //ESTAT_CBEIF=1 开始命令
       asm nop;
       while(ESTAT_CCIF==0);     // ESTAT_CCIF变1 ,表示命令执行完毕
      
       while(ESTAT_PVIOL);       // ESTAT_PVIOL为1 表示对保护的EEPROM有误操作
       while(ESTAT_ACCERR);      // ESTAT_ACCERR为1 表示非法使用EEPROM
      
       //ESTAT_BLANK 为1是表示命令校验是EEPROM已擦除了
       EnableInterrupts;
    }
    //----------------------------------------------------------------------------------------------
    void Write_eeprom(unsigned int addr,int data){
       DisableInterrupts;
       while(ESTAT_CBEIF==0);    // ESTAT_CBEIF为1 表示正准备接受命令 。 0:代表缓冲区满 。
     //以下4步是固定的
       *(EEPROM_ADDR_BASE+addr)=data; // 先向地址中写入一个字(要编程的数),擦除一般写入0XFF
       ECMD=EEP_Word_Prog;       //写入命令序列模式字(要擦除还是写入)
       ESTAT_CBEIF=1;             //ESTAT_CBEIF=1 开始命令
       while(ESTAT_CCIF==0);     // ESTAT_CCIF变1 ,表示命令执行完毕
      
       while(ESTAT_PVIOL);       // ESTAT_PVIOL为1 表示对保护的EEPROM有误操作
       while(ESTAT_ACCERR);      // ESTAT_ACCERR为1 表示非法使用EEPROM
      
       //ESTAT_BLANK 为1是表示命令校验是EEPROM已擦除了
       EnableInterrupts;
    }
    //-----------------------------------------------------------------------------------------------
    int Read_eeprom(unsigned int addr){
       int TempData;
       DisableInterrupts;
       TempData=*(EEPROM_ADDR_BASE+addr);    // 读EEPROM的偏移地址的数据     
       EnableInterrupts;
       return(TempData);
    }
     
    这是DG128的代码,那g128的是怎么样的呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    318

    帖子

    0

    高级会员

    Rank: 4

    积分
    880
    最后登录
    2018-2-27
    发表于 2016-8-18 19:58:42 | 显示全部楼层
    差不多的                              
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-2 15:59 , Processed in 0.089320 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表