suoma 发表于 2017-4-21 11:23:51

sd卡创建变量文件名再讨论

接上一篇帖子
http://www.geek-workshop.com/thread-28247-1-1.html

帖子中实现了文件的时间的变量名命名,但是程序使用了延时函数delay(),所以里面的数据未更新。

现在要求10s新建一个文件,原文件保存。
现在使用arduino uno,DS1302时钟模块,SD存储模块,想了想,如果用mills()函数作为计时去判断,如下如果>10s,就不会写入数据了。想了下通过标志位标示>10s,保存了文件,但是这样不能下一个10s保存,大家有什么好办法?指点一下

unsigned long Rt=millis()/1000;
...
   
FilemyFile = SD.open(buf, FILE_WRITE);
   if (myFile)
        {
                if(Rt>10)// 每10s保存一次
                  {
                  myFile.close();
                  }   
   myFile.println(buf);
   myFile.close();
   }

164335413 发表于 2017-4-21 13:52:45

记录下mills的时间,然后加上10s,循环判断mills是不是等于或者大于上一个时间+10s。
比起delay来,不占用系统太多的时间,好处还是挺多的。

suoma 发表于 2017-4-21 18:04:06

164335413 发表于 2017-4-21 13:52
记录下mills的时间,然后加上10s,循环判断mills是不是等于或者大于上一个时间+10s。
比起delay来,不占用 ...

如图,实现了变量命名,但是里面的数据未更新,程序是保存时钟日时分秒信息

zjz5717 发表于 2017-4-21 19:18:31

suoma 发表于 2017-4-21 18:04
如图,实现了变量命名,但是里面的数据未更新,程序是保存时钟日时分秒信息

这是什么模块啊。。。感觉我用时钟模块的时候没遇到这么多问题。。。我的sd卡读写实验也是文件名变量,然后要记录时间。。。

suoma 发表于 2017-4-21 20:16:05

zjz5717 发表于 2017-4-21 19:18
这是什么模块啊。。。感觉我用时钟模块的时候没遇到这么多问题。。。我的sd卡读写实验也是文件名变量,然 ...

DS1302+SD啊,定时新建、存储。文件名用时间变量命名(也不一定,但要文件名不能相同),SD卡记录时钟信息。

zjz5717 发表于 2017-4-21 22:19:25

suoma 发表于 2017-4-21 20:16
DS1302+SD啊,定时新建、存储。文件名用时间变量命名(也不一定,但要文件名不能相同),SD卡记录时钟信 ...

为啥你的时钟信息看上去那么诡异。。。

suoma 发表于 2017-4-22 11:23:53

zjz5717 发表于 2017-4-21 22:19
为啥你的时钟信息看上去那么诡异。。。

我的文件里面只获取了日时分秒,因为文件命名的时候就是这么命名的,所以直接把文件命名时的时钟信息写到SD卡了

zjz5717 发表于 2017-4-22 17:54:28

suoma 发表于 2017-4-22 11:23
我的文件里面只获取了日时分秒,因为文件命名的时候就是这么命名的,所以直接把文件命名时的时钟信息写到 ...

我觉得他不变化是有道理的,内容变化了不就下一个文件了吗

suoma 发表于 2017-4-22 20:00:01

zjz5717 发表于 2017-4-22 17:54
我觉得他不变化是有道理的,内容变化了不就下一个文件了吗

原想记录10s内的时钟变化保存,然后新建文件再记录。看来要通过中断了,感觉中断不能实现

zjz5717 发表于 2017-4-23 09:27:46

suoma 发表于 2017-4-22 20:00
原想记录10s内的时钟变化保存,然后新建文件再记录。看来要通过中断了,感觉中断不能实现

但是。。。你时间+1s就会新建一个文件啊
会不会那打错了。。。

suoma 发表于 2017-4-23 19:53:06

zjz5717 发表于 2017-4-23 09:27
但是。。。你时间+1s就会新建一个文件啊
会不会那打错了。。。

我再看看,这个问题要解决的
页: [1]
查看完整版本: sd卡创建变量文件名再讨论