标题:
Keil编译错误WARNING L16: UNCALLED SEGMENT新手求助?实在不知道怎么改?
[打印本页]
作者:
virus123
时间:
2021-11-14 21:18
标题:
Keil编译错误WARNING L16: UNCALLED SEGMENT新手求助?实在不知道怎么改?
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DISPLY18B20ROM?18B20
#include <reg52.h>
#include <intrins.h>
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P1^2;
sbit DQ=P1^4;
sbit buzz=P0^6;
static unsigned char readtemp;
unsigned char s[]={"Temp:"};
unsigned char str[]={0,1,2,3,4,5,6,7,8,9};
void disply18b20Rom(char Rom);
//************************************************************************
void delay(unsigned int n)
{
unsigned i=0,j=0;
for(i=0;i<n;i++)
{
for(j=0;j<120;j++);
}
}
//*************************ds18b20****************************************
void Write_DS18B20(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat >>= 1;
}
delay(5);
}
unsigned char Read_DS18B20(void)
{
unsigned char i;
unsigned char dat;
for(i=0;i<8;i++)
{
DQ = 0;
dat >>= 1;
DQ = 1;
if(DQ)
{
dat |= 0x80;
}
delay(5);
}
return dat;
}
bit init_ds18b20(void)
{
bit initflag = 0;
DQ = 1;
delay(12);
DQ = 0;
delay(80);
DQ = 1;
delay(10);
initflag = DQ;
delay(5);
return initflag;
}
unsigned char Readtemp(void)
{
unsigned char low,high;
char temp;
init_ds18b20();
Write_DS18B20(0xCC);
Write_DS18B20(0x44);
delay(200);
init_ds18b20();
Write_DS18B20(0xCC);
Write_DS18B20(0xBE);
low = Read_DS18B20();
high = Read_DS18B20();
temp = high<<4;
temp |= (low>>4);
return temp;
}
//*********************1602************************************
void writedat(unsigned char dat)
{
RS=1;
RW=0;
E=0;
P0=dat;
delay(5);
E=1;
E=0;
}
void writecom(unsigned char com)
{
RS=0;
RW=0;
E=0;
P0=com;
delay(5);
E=1;
E=0;
}
void initlcd()
{
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
}
//******************DòáDoÅ*************************************
void disply18b20Rom(char Rom)
{
char h,l;
l=Rom&0x0f;
h=Rom&0xf0;
h>>=4;
if((h>=0x00)&&(h<=0x30))
{
writedat(h+0x30);
}
else
writedat(h+0x37);
if((l>=0x00)&&(l<=0x09))
{
writedat(l+0x30);
}
else
writedat(l+0x37);
}
void display()
{
unsigned int temp0=0,temp1=0,temp2=0,i=0;
temp0=readtemp/100+'0';
temp1=(readtemp%100)/10+'0';
temp2=readtemp%10+'0';
writecom(0x80);
delay(5);
while(s[i]!='\0')
{
writedat(s[i]);
delay(5);
i++;
}
writecom(0x80+6);
delay(5);
writedat(str[temp0]);
delay(5);
writedat(str[temp1]);
delay(5);
writedat(str[temp2]);
delay(5);
writedat(0xDF);
delay(5);
writedat('C');
delay(5);
}
void main()
{
initlcd();
while(1)
{
readtemp=Readtemp();
display();
}
}
复制代码
作者:
188610329
时间:
2021-11-14 21:54
void disply18b20Rom(char Rom)
你写了这个函数,但是运行的程序里根本没有用到,
编译器发警告,告诉你浪费资源可耻,写了就要用,不用就不要写。
但是,你可以不去理它,就好像你可以点一桌子菜,然后只吃几口,有路人说天打雷劈,但是你不会有任何损失。
作者:
2890069
时间:
2021-11-16 14:03
188610329 发表于 2021-11-14 21:54
void disply18b20Rom(char Rom)
你写了这个函数,但是运行的程序里根本没有用到,
作者:
Hephaestus
时间:
2021-11-16 19:33
一个合格的程序员眼里只有error,是看不见warning的。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1