导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→急切求教关机后累加和值能保存[求助][jingdong]

 *第24801篇: 急切求教关机后累加和值能保存[求助]

  
楼 主:jingdong 2004年8月17日10:15
 急切求教关机后累加和值能保存[求助]
急切求教各位老师:

    现有资源为89C2051,外有24C02,采用C编程。
 
要求:每次8位AD 采样后,实现累加和,且关机后能保存。现次数用24C02保存。单片机按键实现的函数有 (1) 调出累加和及次数,两者相除。得出平均值。
         (2) 按键能实现清除累加和及次数。

因累加次数最大可能有999次,不知是否可用静态变量实现。静态变量以前只在书本上学过,没真正用过。现不知如何能实现上述功能。

以下为我的想法。此程序运行时平均值只显示0。

请部各位老师,此方法是否可行,还有没有其它方法。能否详细介绍一下。

如果此方法可行,敬请帮忙指正一下,不胜感激!!!

ulong sum(uchar x)
{
 
 static long sumval;   //定义静态变量----累加和
 
 if (x==0)
    sumval=0;
 else 
 
   
    sumval=(sumval)+AD采样新值; //累加和 
   
 return(sumval);
}


ulong avg()
 {
   uint count;
   ulong avgval;

   count=24_read(0);   //从24C02中取次数
   avgval = sum(1)/count;
  
   return(avgval);

   } 


  void clear()
 {
   uchar count ;

   count = 0;
   24_write(0,count); //累加和及次数清零
   sum(0);          //累加和清零
 }


void main()
 {
  ulong temp;

  if (P1==0xef)
  clear(); //累加和及次数清零
  if (P1==0xbe)
 {
         temp=avg();
  disp_led(temp);//送显示平均值
  ...

  }


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:为什么程序单步正确,而连续运行是错的?

[下一篇主题]:欢迎大家光临中国单片机世界论坛