- c
- // 文件名:STC15F saved/reads EEPROM
- // 设备名:STC15F
- include
- include
- include
- include
- include
- include
- void save EEPROM unsigned long data, int filename, int filepos) {
- // 设置EepromWritePos
- STC15F stc = STC15FCard("C:\\STC15F", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
- // 获取当前时间(每一步更新一次)
- int time = timet();
- timet diff;
-
- while (diff < T microsecond) {
- // 获取文件位置
- unsigned long int filepos = stc->getEepromReadPos(filename);
- if (filepos == 0) {
- // 文件不存在,跳过
- continue;
- }
- if (filepos == -1) {
- // 文件不存在,跳过
- continue;
- }
-
- // 写入数据到Eeprom存储框
- stc->writeEeprom(data, filename, filepos);
-
- // 计算时间差
- diff = timet() - time;
-
- // 如果时间差小于100微秒,跳过
- if (diff < 100) {
- continue;
- }
- }
-
- // 设置EepromReadPos(读取位置)
- stc->setEepromReadPos(filepos, stc->getEepromReadPos(filename));
-
- // 获取当前时间(每一步更新一次)
- int time = timet();
- timet diff;
-
- while (diff < T microsecond) {
- // 获取文件位置
- unsigned long int filepos = stc->getEepromReadPos(filename);
- if (filepos == 0) {
- // 文件不存在,跳过
- continue;
- }
- if (filepos == -1) {
- // 文件不存在,跳过
- continue;
- }
-
- // 读取数据
- unsigned long int data = stc->readEeprom(filename, filepos);
-
- // 显示数据
- printf("读取到的16位数据:%ld\n", data);
- }
-
- // 关闭单片机
- stc->close();
- goto main;
-
- // 跳出循环
- main();
- }
- void read EEPROM unsigned long data, int filename, int filepos) {
- unsigned long int readpos = stc->getEepromReadPos(filename);
- unsigned long int writepos = stc->getEepromReadPos(filename);
- unsigned long int time = timet();
- timet diff;
-
- // 设置EepromWritePos
- stc->setEepromWritePos(&time, stc->getEepromWritePos(filename));
- stc->setEepromReadPos(writepos, stc->getEepromReadPos(filename));
-
- // 获取文件位置
- unsigned long int filepos = stc->getEepromReadPos(filename);
- if (filepos == 0) {
- // 文件不存在,跳过
- return;
- }
- if (filepos == -1) {
- // 文件不存在,跳过
- return;
- }
-
- // 写入数据到Eeprom存储框
- stc->writeEeprom(data, filename, writepos);
-
- // 计算时间差
- diff = timet() - time;
-
- // 如果时间差小于100微秒,跳过
- if (diff < 100) {
- return;
- }
-
- // 设置EepromReadPos(读取位置)
- stc->setEepromReadPos(filepos, stc->getEepromReadPos(filename));
-
- return;
- }
- // 脚本文件名
- STC15F saved/reads EEPROM
- // 设备ID
- STC15F
- // 设备型号
- STC15F
- // 设备名称
- STC15F
- // 设备描述
- STC15F单片机
- // 设备制造商
- STC
- // 设备型号
- STC15F
- // 设备型号
- STC15F
- // 设备型号
- STC15F
- // 设备型号
- STC15F
复制代码
说明:
1. 文件名和设备名:文件名设定为“STC15F saved/reads EEPROM”,设备名为“STC15F”。
2. 主函数:
读取当前时间(每一步更新一次)。
获取文件位置,若文件不存在,跳过。
写入数据到Eeprom存储框。
计算时间差,若小于100微秒,跳过。
设置读取位置。
输出读取到的16位数据。
3. 读取函数:
设置EepromWritePos和EepromReadPos。
获取文件位置。
写入数据到Eeprom存储框。
计算时间差,若小于100微秒,跳过。
设置读取位置。
退出循环。
注意事项:
硬件接口需要正确连接,确保I2C或SPI的正确配置。
文件位置应与数据读取位置一致。
数据范围应控制在0-65535范围内。
微秒设置应根据单片机的时钟频率进行调整。
[本文内容由国芯人工智能辅助生成,仅供参考] |