找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1374|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

求助non-address/-constant initializer這個問題怎么解決?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:929517 發(fā)表于 2023-10-19 18:31 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
User\main.c(63): error C247: non-address/-constant initializer
代碼如下:請問這個是什么錯誤,我是初學(xué)者,懇請各位指導(dǎo),謝謝。
代碼有寫的不好的,也煩請指正,謝謝
/*固態(tài)繼電器動作程序
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;
    }
  
  }  

}  
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

地板
ID:929517 發(fā)表于 2023-10-19 22:17 來自手機 | 只看該作者
chxelc 發(fā)表于 2023-10-19 19:25
用static定義的變量稱為靜態(tài)變量。靜態(tài)變量在程序調(diào)用結(jié)束后其占用的內(nèi)存單元并不被釋放(其值保持不變)。把 ...

這些大佬,問題解決了,同時我改了代碼,--改成了++,這也問題應(yīng)該是 static變量必須賦初值是一個具體的值吧,而不是不確定的值
回復(fù)

使用道具 舉報

板凳
ID:929517 發(fā)表于 2023-10-19 22:00 來自手機 | 只看該作者
chxelc 發(fā)表于 2023-10-19 19:25
用static定義的變量稱為靜態(tài)變量。靜態(tài)變量在程序調(diào)用結(jié)束后其占用的內(nèi)存單元并不被釋放(其值保持不變)。把 ...

調(diào)用子函數(shù)必須添加啊 不然下回進來重新賦值開始啊
回復(fù)

使用道具 舉報

沙發(fā)
ID:712097 發(fā)表于 2023-10-19 19:25 | 只看該作者
用static定義的變量稱為靜態(tài)變量。靜態(tài)變量在程序調(diào)用結(jié)束后其占用的內(nèi)存單元并不被釋放(其值保持不變)。把程序內(nèi)第4行的兩個static去掉,就不會報錯了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表