标题:
error C129: missing ';' before 'useconds' keil中的一个问题 求大神解答疑惑
[打印本页]
作者:
、南絮
时间:
2017-11-27 00:52
标题:
error C129: missing ';' before 'useconds' keil中的一个问题 求大神解答疑惑
有一个错误:FGCCGCG.C(60): error C129: missing ';' before 'useconds'
(红色部分)
之前有一个错误是我未定义“useconds”,于是我在上面加了 “unchar useconds;”
求大神解答疑惑,谢谢!
#include <REG52.H>
#define uchar unsigned char
#define unit unsigned int
sbit DQ = P1^0;
sbit RS = P1^7;
sbit RW = P1^6;
sbit EN = P1^5;
union {
uchar c[2];
unit x;
} temp;
uchar flag;
unit cc,cc2;
float cc1;
uchar buff1[13] = {"temperature:"};
uchar buff2[6] = {"+00.0"};
//检查忙函数
void fbusy()
{
P2 = 0xff;
RS = 0;
RW = 1;
EN = 1;
EN = 0;
while((P2 & 0x80))
{
EN = 0;
EN = 1 ;
}
}
//写命令函数
void wc51r(uchar j)
{
fbusy();
EN = 0;
RS = 0;
RW = 0;
EN = 1;
P2 = j;
EN = 0;
}
//写数据函数
void wc51ddr(char j)
{
fbusy();
EN = 0;
RS = 1;
RW = 0;
EN = 1;
P2 = j;
EN = 0;
}
void init()
{
wc51r(0x01);
wc51r(0x38);
wc51r(0x0c);
wc51r(0x06);
}
unchar useconds;
void delay(uint useconds)
{
for(; useconds>0; usecond--);
}
uchar ow_reset(void)
{
uchar presence;
DQ = 0;
delay(50);
DQ = 1;
delay(3);
presence = DQ;
delay(25);
return(presence);
}
uchar read_byte(void)
{
uchar i;
uchar value = 0;
for (i=8; i>0; i--)
{
value >>= 1;
DQ = 0;
DQ = 1;
delay(1);
if(DQ) value |=0x80;
delay(6);
}
return(value);
}
void write_byte(uchar val)
{
uchar i;
for (i=8; i>1; i--)
{
DQ = 0 ;
DQ = val&0x01;
delay(5);
DQ=1;
val = val/2;
}
delay(5);
}
void Read_Temperature(void)
{
ow_reset();
write_byte(0xCC);
write_byte(0xBE);
temp.c[1] = read_byte();
temp.c[0] = read_byte();
ow_reset();
write_byte(0xCC);
write_byte(0x44);
return;
}
void main()
{
uchar k;
delay(10);
EA = 0;
flag = 0;
init();
wc51r(0x80);
for (k=0; k<13; k++)
{wc51ddr(buff1[k]);}
while(1)
{
delay(10000);
Read_Temperature();
cc = temp.c[0]*256.0 + temp.c[1];
if (temp.c [0] > 0xf8) {flag=1; cc=~cc+1;}
else flag=0;
cc1 = cc*0.0625;
cc2 = cc1*100;
buff2[1] = cc2/1000 + 0x30;
if (buff2[1] == 0x30)
buff2[1] = 0x20;
buff2[2] = cc2/100 - (cc2/1000)*10 + 0x30;
buff2[4] = cc2/10 - (cc2/1000)*10 + 0x30;
if (flag==1)
buff2[0] = '-';
else
buff2[0] = '+';
wc51r(0xc5);
for (k=0; k<6; k++)
{ wc51ddr (buff2[k]);}
}
}
作者:
admin
时间:
2017-11-27 03:37
看这个类似的问题:
http://www.51hei.com/bbs/dpj-78666-1.html
作者:
HC6800-ES-V2.0
时间:
2017-11-27 08:43
其实没有什么大错,就是打字时不小心吧!
你看你的程序:
#define uchar unsigned char(第二行)
看清楚没?你定义的是uchar
再看你的错误行:unchar useconds;
我是直接复制粘贴的哦!
看清楚没有?再看、再看、看看。。。。看。,。。。。看,看清楚没有?
你定义uchar,用时却写成了unxhar。多了一个字母。
楼上板主给你例子也是那样错的。你看懂没?
作者:
xbook_ben
时间:
2017-11-27 08:47
把变量定义到文件的开头去。
作者:
军师祭酒
时间:
2017-11-27 08:49
前面定义 #define uchar unsigned char
应该 uchar useconds;才对吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1