1. bread88lifa利发国际娱乐论坛/
  2. 嵌入式论坛/
    1. 电子论坛综合区
    2. 嵌入式论坛
    3. 电源技术论坛
    4. 硬件设计论坛
    5. 测试测量论坛
    6. 检测技术与质量
    7. EDA设计论坛
    8. 综合技术与应用
    9. 开源硬件
    10. IC设计论坛
    11. 消费电子论坛
    12. 无线通信论坛
    13. 个人版区
    14. 厂商专区
    15. 论坛服务区
    16. 高校联盟
    17. 供求信息发布
  3. 单片机/MCU论坛
    1. ARM技术论坛
    2. Android论坛
    3. Linux论坛
    4. FPGA|CPLD|ASIC论坛
    5. DSP论坛
    6. 嵌入式系统论坛
  4. / STM32/STM8技术论坛
  5. / 写一段程序来实现泵24小时开的次数在液晶屏上的显示 ...
    关闭提示

[问答] 写一段程序来实现泵24小时开的次数在液晶屏上的显示

[复制链接]
技术员
发表于 2017-9-26 15:25:19   454 查看 6 回复 只看该作者 倒序浏览
分享
写一段程序来实现泵24小时开的次数在液晶屏上的显示。只能显示24小时内的,如果运行了25小时,那么第一小时内计数的开次数会被丢弃,不能累计。 相当麻烦,不知道如何实现只能在24小时内的次数显示,主要是设备运行超过24小时后,还是只能在液晶屏上显示24小时的那个累计次数。跪求大神分析下思路。
奖励5积分
wulinwl 2017-9-26
changge513 发表于 2017-9-27 08:49
我之前 建立了一个数组a[24]来存 每个小时的数据。但是到运行超过24小时,如25,49小时后。这个取舍,我就不知道如何赋值存数据了。

unsigned char data a[24];        //缓存
unsigned char count=0;                //计数变量

unsigned char cache()      
{
        unsigned char i,j=0;
        for(i=0;i<23;i++)                 //缓存移位
        {
                a=a[i+1];
        }
        a[23]=count;                        //更新缓存第24
        count=0;
        for(i=0;i<24;i++)                 //缓存累加
        {
                j+=a;
        }
        return j;                                 //返回累加数
}
助理工程师
发表于 2017-9-26 15:25:20  
changge513 发表于 2017-9-27 08:49
我之前 建立了一个数组a[24]来存 每个小时的数据。但是到运行超过24小时,如25,49小时后。这个取舍,我就不知道如何赋值存数据了。

unsigned char data a[24];        //缓存
unsigned char count=0;                //计数变量

unsigned char cache()      
{
        unsigned char i,j=0;
        for(i=0;i<23;i++)                 //缓存移位
        {
                a=a[i+1];
        }
        a[23]=count;                        //更新缓存第24
        count=0;
        for(i=0;i<24;i++)                 //缓存累加
        {
                j+=a;
        }
        return j;                                 //返回累加数
}
回复 点赞 举报
助理工程师
发表于 2017-9-27 08:08:56  

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
可以按每一个小时或更小时间单元计次并分别保存,计算时只取当前至以往24小时内累计数,超出的舍弃。根据实际需求可以做到每秒或每分刷新显示数据。
回复 点赞 举报
技术员
发表于 2017-9-27 08:49:28    楼主|
wulinwl 发表于 2017-9-27 08:08
可以按每一个小时或更小时间单元计次并分别保存,计算时只取当前至以往24小时内累计数,超出的舍弃。根据实际需求可以做到每秒或每分刷新显示数据。

我之前 建立了一个数组a[24]来存 每个小时的数据。但是到运行超过24小时,如25,49小时后。这个取舍,我就不知道如何赋值存数据了。
回复 点赞 举报
高级工程师
发表于 2017-9-27 09:30:33  
这个应该是数组移位的问题,比如一个a[26]的数组,当第25个数据有效后,并满足删除第一个数据的条件时,进行数组移位,也就是这时a[0]=a[1],a[1]=a[2]。。。如此,直到把第25个数据移到第24。
回复 点赞 举报
技术员
发表于 2017-10-11 10:56:01  
不可能无限大啊,总是要舍弃的。你可以以24H为一个单位,到25小时的时候把前面24小时的总数另外保存,屏幕上只显示24H内的数目。开启数是一个变量,可以不用数组啊,设一个变量直接刷新当前数目不就可以了?
回复 点赞 举报
等待验证会员
发表于 2017-10-12 09:49:28  
对24求余后减1,例如第1小时为a[0],第25小时也是a[0],此时2-24小时的还在数组a[1]------a[23]中。依次类推,每小时之处理一个数组元素,不需要数组移位。
回复 点赞 举报
高级模式
您需要登录后才可以回帖 登录 | 注册
关闭

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

快速回复 返回顶部 返回列表
  1. time最新主题
  2. recommend推荐主题
  3. hot热门主题
  4. post 我的帖子
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区

88lifa利发国际娱乐

百度360搜索搜狗搜索