打印

强信号干扰

[复制链接]
603|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kangzj|  楼主 | 2015-3-11 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chuxh| | 2015-3-11 21:04 | 只看该作者
详细说说

使用特权

评论回复
板凳
kangzj|  楼主 | 2015-3-11 21:06 | 只看该作者
下面程序每1秒中断一次,每60秒存储一次,SIFCNT是单片机用来记数的计数器,记每秒的瞬时流量,Total_flow是总流量,结果写入FLASH正常,可是每过60秒FLASH写入后一秒左右One_T都会变的很大,不是正常的大但每次数都不一样没什么规律性,求大虾帮找找原因,为什么每次FLASH写入后一秒左右One_T都会变的很大????????忙了两天都没结果!!!!

void main(void)

{    SystemInit();   //初始化

     InitScanIF();

     LCD_Init();   

     cl_lcd();      //清屏



    Total_flow=ReadFloat((uint16 *)addr_T_F);   // 读累计流量



    WDTCTL = WDT_ADLY_1000;   //每1秒中断

    _EINT();

    IE1 |= WDTIE;         ///使能WDT中断



    while (1);

}  



#if __VER__ < 200

    interrupt [WDT_VECTOR] void ISR_WDT(void)

#else

    #pragma vector=WDT_VECTOR

    __interrupt void ISR_WDT(void)

#endif   

    { One_T=SIFCNT;

      Total_flow=Total_flow+One_T;

      Writ_flag++;        

      if (Writ_flag>=60)  

      { _DINT();

       Erase((uint16 *)addr_T_F);         //擦除累计流量

       WritFloat((uint16 *)addr_T_F, Total_flow);  //写累计流量

       Writ_flag=0;                               // 写时间标志置0

        _EINT();

       }

     }

使用特权

评论回复
地板
supernan| | 2015-3-11 21:07 | 只看该作者
检查程序有没有溢出之类

使用特权

评论回复
5
kangzj|  楼主 | 2015-3-11 21:08 | 只看该作者
应该没有,我看下

使用特权

评论回复
6
comeon201208| | 2015-3-11 23:09 | 只看该作者
这个可以检查下程序结构部分的吧。

使用特权

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

本版积分规则

672

主题

7007

帖子

2

粉丝