欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4018|回復(fù): 4
收起左側(cè)

WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS這個警告怎么消除?

[復(fù)制鏈接]
ID:786547 發(fā)表于 2020-7-3 14:10 | 顯示全部樓層 |閱讀模式
keil 編譯的時候出現(xiàn)這個警告*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 要怎么消除??沒有任何錯誤

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit S1=P3^5;   //定義"啟動"按鈕
sbit S2=P3^4;   //定義"停止"按鈕
sbit S3=P3^3;   //定義"清零"按鈕
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
uchar p,q,a,s,g,hms,hmg;
unsigned char disp[4];
uchar code table[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80,0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};  //共陽極數(shù)碼管編碼
void display(uchar s,uchar g,uchar hms,uchar hmg); //聲明顯示函數(shù)
void delay(uint z);   //聲明延時函數(shù)
void init();    //聲明初始化函數(shù)
void main()
{
init();   //調(diào)用初始化程序
while(1)
{
if(S1==0) //檢測"啟動"按鈕是否按下
{
delay(10); //延時去抖動
if(S1==0)  //再次檢測"啟動"按鈕是否按下
{
while(!S1);//松開手檢測,若按鍵沒有釋放,S1始終為0,那么!S1始終為1,程序就一直停在此
TR0=1;     //啟動定時器
}
}
if(S2==0)  //檢測"停止"按鈕是否按下
{
delay(10); //延時去抖動
if(S2==0)  //再次檢測"停止"按鈕是否按下
{
while(!S2);//松手檢測
TR0=0;     //關(guān)閉定時器
}
}
if(S3==0)  //檢測"清零"按鈕是否按下
{
delay(10); //延時去抖動
if(S3==0)  //再次檢測"清零"按鈕是否按下
{
while(!S3);//松手檢測
p=0;     //將變量p的值清零
q=0;    //將變量q的值清零
s=0;    //將秒的十位清零
g=0;     //將秒的個位清零
hms=0;     //將毫秒的十位清零
hmg=0;     //將毫秒的個位清零
TR0=0;     //關(guān)閉定時器
}
}
display(s, g, hms, hmg);  //調(diào)用顯示函數(shù)
}
}
void delay(uint z)   //延時函數(shù)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar s,uchar g,uchar hms,uchar hmg) //顯示程序
{
P2=0x7f;
s=disp[0];
delay(10);
P2=0xbf;
g=disp[1];
delay(10);
P2=0xdf;
hms=disp[2];
delay(10);
P2=0xef;
hmg=disp[3];
delay(10); //使用動態(tài)掃描的方法實現(xiàn)數(shù)碼管顯示
}
void init() //初始化程序
{
p=0;
TMOD=0x01;  //使用定時器T0的方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;  //定時5ms中斷一次
EA=1; //中斷總允許
ET0=1; //允許定時器T0中斷
}
void timer0() interrupt 1
{
TH0=(65536-5000)/256; //重新賦初值
TL0=(65536-5000)%256;
a++;  //中斷一次變量a加一
if(a==20)
{
a=0;
p++; if(p>99)  //當(dāng)秒表中毫秒的值大于99時回零
{
p=0;
q++;      //秒表中秒的值加一
if (q==60)    //當(dāng)秒表中秒的值等于60時回零
{
q=0;
}
}
s=q/10; g=q%10; hms=p/10; hmg=p%10; //分離秒的個位和十位,分離毫秒的個位和十位
}
}

回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-7-3 14:59 | 顯示全部樓層
樓主定義的數(shù)組沒有被引用。
uchar code table[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80,0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};  //共陽極數(shù)碼管編碼

void display(uchar s,uchar g,uchar hms,uchar hmg) //顯示程序
{
        P2=0x7f;
        P0=table[s];
        delay(10);
        P2=0xbf;
        P0=table[g];
        delay(10);
        P2=0xdf;
        P0=table[hms];
        delay(10);
        P2=0xef;
        P0=table[hmg];
        delay(10); //使用動態(tài)掃描的方法實現(xiàn)數(shù)碼管顯示
}
回復(fù)

使用道具 舉報

ID:786547 發(fā)表于 2020-7-3 15:07 | 顯示全部樓層
wulin 發(fā)表于 2020-7-3 14:59
樓主定義的數(shù)組沒有被引用。
uchar code table[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x8 ...

改進(jìn)了后,放在燒寫板中數(shù)碼顯示管還是不能顯示,請問這需要怎么改
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-7-3 15:32 | 顯示全部樓層
非塵 發(fā)表于 2020-7-3 15:07
改進(jìn)了后,放在燒寫板中數(shù)碼顯示管還是不能顯示,請問這需要怎么改

軟件是依據(jù)硬件編寫的,要把電路圖發(fā)上來才能判斷。
回復(fù)

使用道具 舉報

ID:796980 發(fā)表于 2020-7-4 10:40 | 顯示全部樓層
在Keil C中,如果沒有顯式調(diào)用到定義過的函數(shù),就會出現(xiàn)這樣的的警告。當(dāng)出現(xiàn)這樣的警告時,可以不用管,因為不影響其它部分。但是,我們知道,即使沒有調(diào)用這個函數(shù),Keil仍然把它編譯連接進(jìn)整個程序,不過浪費點ROM倒是不心疼。最主要的是,在這個函數(shù)中的變量,不會被列入覆蓋分析范圍內(nèi),也就是說這些變量占的空間不能被回收,這對于為數(shù)不多的RAM資源可是巨大的浪費啊。。。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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