打印

怎么样在不影响单片机工作的情况下知道我的数据保存时间

[复制链接]
2322|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2014-8-8 15:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2014-8-8 15:54 | 只看该作者

#define MINUTE10        (100u * 60u * 10u)


        U16 time = 0;

        while(1)
        {
                if(RI){
                        save_data();
                        time = 0;
                }

                if(flag_10ms){
                        flag_10ms = 0;
                        if(++time >= MINUTE10){
                                clear_data();
                        }
                }

        }

使用特权

评论回复
板凳
longmaodo| | 2014-8-8 15:57 | 只看该作者
像是超时操作  不过你这时间可是够长的呀
首先你要有一个定时器 比如你的定时器是100ms的
那么你定义一个u16 tim_over
在接收到数据后使tim_over = 6000;
在定时器内写
if(tim_over){
  tim_over--;
}
再判断tim_over是否为0就行了

使用特权

评论回复
地板
laocuo1142|  楼主 | 2014-8-8 16:34 | 只看该作者
ayb_ice 发表于 2014-8-8 15:54
#define MINUTE10        (100u * 60u * 10u)

如果我是二维数组,数据是一个一个加入里面,现在我要对没一个都进行定时,怎么进行呢?

使用特权

评论回复
5
ayb_ice| | 2014-8-8 16:39 | 只看该作者
#define MINUTE10        (100u * 60u * 10u)


        U16 time = 0;
        U16 number = 0;

        while(1)
        {
                if(RI){
                        save_data();
                        number++;
                        time = 0;
                }

                if(!number){
                        if(flag_10ms){
                                flag_10ms = 0;
                                if(++time >= MINUTE10){
                                        clear_data();
                                        number = 0;
                                        time = 0;
                                }
                        }
                }
        }

使用特权

评论回复
6
laocuo1142|  楼主 | 2014-8-8 16:54 | 只看该作者
ayb_ice 发表于 2014-8-8 16:39
#define MINUTE10        (100u * 60u * 10u)

能不能来点注释,或者思路?我自己写,我是射频收数据,收到一帧后保存为xx xx xx xx 00,一共6个数吧RFData[6][5],这个00就作为定时开始的标志,到10分钟没收到新的数据,我就把这一帧清零掉。对着六个数我是分别计时,各不影响。我就是搞不清楚这个原理!!!麻烦啦。。。

使用特权

评论回复
7
ayb_ice| | 2014-8-8 17:10 | 只看该作者
laocuo1142 发表于 2014-8-8 16:54
能不能来点注释,或者思路?我自己写,我是射频收数据,收到一帧后保存为xx xx xx xx 00,一共6个数吧RFDa ...

这个示意代码很明显了,根本不需要什么注释

使用特权

评论回复
8
lyn3210| | 2014-8-9 09:46 | 只看该作者
用系统吧!

使用特权

评论回复
9
zh_sl| | 2014-8-9 10:38 | 只看该作者
if(flag_1min)
{
        flag_1min=0;
        for(n=0;n<6;n++)
        {
                RFData[n][4]++;
                if(RFData[n][4]>=10)
                {
                        clear_data();//清除一帧
                }
        }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1295

主题

6186

帖子

14

粉丝