5457|7

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

keil问题,求救!!!!! [复制链接]

我用keil编译时提示
compiling ds18b20_driver.c...
compiling ds18b20_apply.c...
DS18B20_DRIVER.H(3): error C202: 'P3': undefined identifier
DS18B20_DRIVER.H(5): error C141: syntax error near 'dat', expected ')'
DS18B20_DRIVER.H(7): error C129: missing ';' before 'read_byte'


很奇怪,单个ds18b20_driver.c可以通过,为什么加入ds18b20_apply.c会不行呢?高人指点
两个.c和一个.h文件如下:
#ifndef _DS18B20_DRIVER_H_
#define _DS18B20_DRIVER_H_
sbit dq = P3^4;
extern bit rst1820(void);
extern void write_byte(uchar dat);
extern void wait(void);
extern uchar read_byte(void);
#endif




#include "m_type.h"
#include
#include
#include "ds18b20_driver.h"

uchar bdata Bit_Volatile;
sbit  Bit_Volatile_0=Bit_Volatile^0;

/*--------------------------------------
                        复位函数
发出复位信号,接受从ds18b20返回的存在信号
返回值ready为0为准备好
--------------------------------------*/
bit rst1820(void)
{
        uchar i;
        bit ready;
        dq=1;
        dq=0;
        for(i=0;i<166;i++);
        dq=1;
        for(i=0;i<30;i++);
        ready=dq;
        for(i=0;i<100;i++);
        dq=1;
        return ready;
}

/*--------------------------------------
                写一位数据函数
--------------------------------------*/
void write_bit(bit dat)
{
        uchar i;
        dq=1;
        dq=0;
        for(i=0;i<3;i++);
        dq=dat;
        for(i=0;i<16;i++);
        dq=1;
}

/*--------------------------------------
                读一位数据函数
--------------------------------------*/
bit read_bit(void)
{
        uchar i;
        bit dat;
        dq=1;
        dq=0;
        _nop_();
        _nop_();
        dq=1;
        for(i=0;i<3;i++);
        dat=dq;
        for(i=0;i<17;i++);
        dq=1;
        return dat;
}



/*--------------------------------------
                写一字节数据函数
--------------------------------------*/
void write_byte(uchar dat)
{
        uchar i;
        Bit_Volatile=dat;
        for(i=0;i<8;i++)
        {
                write_bit(Bit_Volatile_0);
                Bit_Volatile=_cror_(Bit_Volatile,1);
        }
}

/*---------------------------------------
                读一字节数据函数
---------------------------------------*/
uchar read_byte(void)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                Bit_Volatile_0=read_bit();
                Bit_Volatile=_cror_(Bit_Volatile,1);
        }       
        return Bit_Volatile;
}

/*--------------------------------------
                        判忙函数
--------------------------------------*/
void wait(void)
{
        uchar dat;
        do
        {
                dat=read_byte();
        }while(dat!=0xff);
}




#include "ds18b20_driver.h"

char tmes;

void set18b20(void)      //设置ds18b20使其测温并开始转换
{
    bit ready;
        do{ready=rst1820();}        //发出复位信号
        while(ready==1);        //接受到存在信号
        write_byte(0xcc);        //skip rom
        write_byte(0x44);        //convert t
}


void gettemp(void)       //获取温度,复位ds18b20后空闲
{
    uchar tem0,tem1;
        wait();                                //等待ds18b20完成转换
        do{ready=rst1820();}        //发出复位信号
        while(ready==1);        //接受到存在信号
        write_byte(0xcc);        //skip rom
        write_byte(0xbe);        //Read Scratchpad
        tem0=read_byte();        //读出数据
        tem1=read_byte();
        reset();                        //发出复位信号打断ds18b20继续发出数据
        tmes=(tem1<<4)|(tem0>>4);
    //xiao=tem0&0x0f;
}

最新回复

好像没那么简单,呵呵.  详情 回复 发表于 2008-5-1 14:56
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
补充一下,第一个红色程序是ds18b20_driver.h,接下来一个蓝的是ds18b20_driver.c,最后一个红的是ds18b20_apply.c
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
.c  文件不要作包含文件
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
DS18B20_DRIVER.H(3): error C202: 'P3': undefined identifier
DS18B20_DRIVER.H(5): error C141: syntax error near 'dat', expected ')'
DS18B20_DRIVER.H(7): error C129: missing ';' before 'read_byte'

1. P3未定义
2.语法错误
3.语法错误
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
DS18B20_DRIVER.H(3): error C202: 'P3': undefined identifier  
DS18B20_DRIVER.H(5): error C141: syntax error near 'dat', expected ')'  
DS18B20_DRIVER.H(7): error C129: missing ';' before 'read_byte'  
1. P3未定义
2.uchar 没定义
3.估计是2的副产物
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

6
 
问题已解决,谢谢大家。结贴
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
你那P3肯定少引用了头文件。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
好像没那么简单,呵呵.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表