标题: 求助non-address/-constant initializer这个问题怎么解决? [打印本页]

作者: reking8    时间: 2023-10-19 18:31
标题: 求助non-address/-constant initializer这个问题怎么解决?
User\main.c(63): error C247: non-address/-constant initializer
代码如下:请问这个是什么错误,我是初学者,恳请各位指导,谢谢。
代码有写的不好的,也烦请指正,谢谢
/*固态继电器动作程序
cnt1:接通时间 cnt2:断开时间
*/
void SSR_Action(u8 cnt1, u8 cnt2)
{
  u16 temp1 = cnt1*1000;
  u16 temp2 = cnt2*1000;
  bit Heat = 1;
  static u16 a1 = temp1; static u16 a2 = temp2;
  
  if(Heat)
  {
    SSR_CTRL = 1;
    a1--;
    if(a1 == 0)
    {
     Heat = 0;
     a2 = temp2;
    }
  }
  if(Heat == 0)
  {
    SSR_CTRL = 0;
    a2--;
    if(a2 == 0)
    {
     Heat = 1;  
     a1 = temp1;
    }
  
  }  

}  

作者: chxelc    时间: 2023-10-19 19:25
用static定义的变量称为静态变量。静态变量在程序调用结束后其占用的内存单元并不被释放(其值保持不变)。把程序内第4行的两个static去掉,就不会报错了。
作者: reking8    时间: 2023-10-19 22:00
chxelc 发表于 2023-10-19 19:25
用static定义的变量称为静态变量。静态变量在程序调用结束后其占用的内存单元并不被释放(其值保持不变)。把 ...

调用子函数必须添加啊 不然下回进来重新赋值开始啊
作者: reking8    时间: 2023-10-19 22:17
chxelc 发表于 2023-10-19 19:25
用static定义的变量称为静态变量。静态变量在程序调用结束后其占用的内存单元并不被释放(其值保持不变)。把 ...

这些大佬,问题解决了,同时我改了代码,--改成了++,这也问题应该是 static变量必须赋初值是一个具体的值吧,而不是不确定的值




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1