2024年6月12日发(作者:)

/*包含了这么多的头文件,也不知道有的有没有用*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

/*和引脚相关的宏定义*/

#define DQ S3C2410_GPH9

#define CFG_IN S3C2410_GPH9_INP

#define CFG_OUT S3C2410_GPH9_OUTP

static int opencount = 0;

unsigned char init_ds(void)//ds18b20复位,返回0成功,返回1失败

{

unsigned char ret = 0;

s3c2410_gpio_cfgpin(DQ, CFG_OUT);

s3c2410_gpio_pullup(DQ, 0);

s3c2410_gpio_setpin(DQ, 1);

s3c2410_gpio_setpin(DQ, 0);

udelay(500);

s3c2410_gpio_setpin(DQ, 1);

udelay(50);

s3c2410_gpio_cfgpin(DQ, CFG_IN);

udelay(200);

ret = s3c2410_gpio_getpin(DQ);

s3c2410_gpio_cfgpin(DQ, CFG_OUT);

s3c2410_gpio_pullup(DQ, 0);

s3c2410_gpio_setpin(DQ, 1);

return ret;

}

void write_byte(char data)//向18b20写一个字节

{

char i = 0;

s3c2410_gpio_cfgpin(DQ, CFG_OUT);

s3c2410_gpio_pullup(DQ, 1);

for(i=0; i<8; i++){

s3c2410_gpio_setpin(DQ, 0);

udelay(10);

s3c2410_gpio_setpin(DQ, 1);

s3c2410_gpio_setpin(DQ, data&0x01);