合泰社区论坛

 找回密码
 立即注册-HOLTEK

QQ登录

只需一步,快速开始

搜索
查看: 4591|回复: 2

合泰模拟eeprom程序,emulated_eeprom,使用ht66f0021、31、41、ht66f0181等

[复制链接]

88

主题

170

帖子

3131

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3131
QQ
发表于 2022-1-24 10:37:40 | 显示全部楼层 |阅读模式
合泰开发板

  1. #ifndef _EEPROM_H_
  2. #define _EEPROM_H_


  3. void fun_eeprom_wordwrite(unsigned char eep_addr,unsigned char eep_data);
  4. unsigned int fun_eeprom_wordread(unsigned char eep_addr);


  5. #endif
复制代码
  1. #include "mcu.h"
  2. //static volatile flag_type __attribute__ ((at(0x1b))) sfr_ecr;
  3. volatile unsigned char gv8u_eeprom_data_backup[16];                //只保存低8-bit
  4. //================================================================================//
  5. void fun_eeprom_wordwrite(unsigned char eep_addr,unsigned char eep_data)
  6. {
  7.         unsigned char lv8u_ear_backup,i;
  8.        
  9.         if(_hircen == 0)
  10.         {
  11.                 return;
  12.         }
  13.        
  14.         if(eep_addr>0x1f)
  15.         {
  16.                 return;
  17.         }
  18.        
  19.         lv8u_ear_backup = eep_addr;
  20.         lv8u_ear_backup = lv8u_ear_backup&0b00010000;
  21. //       
  22.         for(i=0;i<16;i++)
  23.         {
  24.                 _ear = lv8u_ear_backup;
  25.                 if(_emi == 1)
  26.                 {
  27.                         _emi = 0;
  28.                         _erden = 1;
  29.                         _erd = 1;
  30.                         _emi = 1;
  31.                 }
  32.                 else
  33.                 {
  34.                         _erden = 1;
  35.                         _erd = 1;
  36.                 }
  37.                 while(_erd);
  38.                 _erden = 0;
  39.        
  40.                 gv8u_eeprom_data_backup[i]  =_edl;
  41.        
  42.                 lv8u_ear_backup++;
  43.         }
  44.        
  45.                
  46.         lv8u_ear_backup = eep_addr;
  47.         lv8u_ear_backup = lv8u_ear_backup&0b00010000;       
  48.         _ear = lv8u_ear_backup;
  49.         if(_emi == 1)
  50.         {
  51.                 _emi = 0;
  52.                 _eeren = 1;
  53.                 _eer = 1;
  54.                 _emi = 1;
  55.         }
  56.         else
  57.         {
  58.                 _eeren = 1;
  59.                 _eer = 1;
  60.         }
  61.         while(_eer);
  62.         _eeren = 0;
  63.        
  64.         lv8u_ear_backup = eep_addr;
  65.         lv8u_ear_backup = lv8u_ear_backup&0b00001111;
  66.         gv8u_eeprom_data_backup[lv8u_ear_backup] = eep_data;
  67.        
  68.         lv8u_ear_backup = eep_addr;
  69.         lv8u_ear_backup = lv8u_ear_backup&0b00010000;
  70.         for(i=0;i<16;i++)
  71.         {
  72.                 _ear = lv8u_ear_backup;
  73.                 _edl = gv8u_eeprom_data_backup[i];
  74.                 _edh = 0;
  75.                
  76.                 if(_emi == 1)
  77.                 {
  78.                         _emi = 0;
  79.                         _ewren = 1;
  80.                         _ewr = 1;
  81.                         _emi = 1;
  82.                 }
  83.                 else
  84.                 {
  85.                         _ewren = 1;
  86.                         _ewr = 1;
  87.                 }
  88.                 while(_ewr);
  89.                 _ewren = 0;
  90.                 GCC_CLRWDT();
  91.                 lv8u_ear_backup++;
  92.         }
  93. }
  94. //================================================================================//
  95. unsigned char fun_eeprom_wordread(unsigned char eep_addr)
  96. {
  97.         unsigned int lv8u_eepdata;
  98.         _ear = eep_addr;

  99.         if(_emi == 1)
  100.         {
  101.                 _emi = 0;
  102.                 _erden = 1;
  103.                 _erd = 1;
  104.                 _emi = 1;               
  105.         }
  106.         else
  107.         {
  108.                 _erden = 1;
  109.                 _erd = 1;
  110.         }
  111.         while(_erd);

  112.         lv8u_eepdata = _edl;


  113.         return lv8u_eepdata;
  114. }
复制代码










emulated_eeprom.h (202 Bytes, 下载次数: 4) emulated_eeprom.c (1.94 KB, 下载次数: 5)






上一篇:HT32用CMSIS无法烧录
下一篇:Holtek e-write pro 烧录限制烧录次数使用手册
回复

使用道具 举报

3

主题

16

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2023-10-23 09:02:39 | 显示全部楼层
合泰开发板
学习了  感谢
回复

使用道具 举报

2

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2024-3-27 21:15:57 | 显示全部楼层
合泰开发板
感谢分享,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册-HOLTEK

本版积分规则

公告:

Archiver|手机版|黑名单|合泰论坛 合泰在线业务 合泰在线技术

GMT+8, 2024-11-22 01:18 , Processed in 0.138792 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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