#ifndef __DS18B20_H
#define __DS18B20_H 
#include "sys.h"   
//////////////////////////////////////////////////////////////////////////////////	 
// 			2203/4/23 GHz_ljw 合并版 开启1-4通道 参考通道没有温度传感器					
//////////////////////////////////////////////////////////////////////////////////

//IO方向设置
#define DS18B20_IO_IN()  {GPIOC->MODER&=~(3<<(2*10));GPIOC->MODER|=0<<(2*10);}	// 输入模式
#define DS18B20_IO_OUT() {GPIOC->MODER&=~(3<<(2*10));GPIOC->MODER|=1<<(2*10);} 	// 输出模式
#define DS18B20_IO_IN_2()  {GPIOD->MODER&=~(3<<(2*9));GPIOD->MODER|=0<<(2*9);}	// 输入模式
#define DS18B20_IO_OUT_2() {GPIOD->MODER&=~(3<<(2*9));GPIOD->MODER|=1<<(2*9);} 	// 输出模式
#define DS18B20_IO_IN_3()  {GPIOE->MODER&=~(3<<(2*9));GPIOE->MODER|=0<<(2*9);}	// 输入模式
#define DS18B20_IO_OUT_3() {GPIOE->MODER&=~(3<<(2*9));GPIOE->MODER|=1<<(2*9);} 	// 输出模式
#define DS18B20_IO_IN_4()  {GPIOC->MODER&=~(3<<(2*0));GPIOC->MODER|=0<<(2*0);}	// 输入模式
#define DS18B20_IO_OUT_4() {GPIOC->MODER&=~(3<<(2*0));GPIOC->MODER|=1<<(2*0);} 	// 输出模式
////IO操作函数											   
#define	DS18B20_DQ_OUT PCout(10) //数据端口	 
#define	DS18B20_DQ_IN  PCin(10)  //数据端口	 
#define	DS18B20_DQ_OUT_2 PDout(9) //数据端口	 
#define	DS18B20_DQ_IN_2  PDin(9)  //数据端口	 
#define	DS18B20_DQ_OUT_3 PEout(9) //数据端口	 
#define	DS18B20_DQ_IN_3  PEin(9)  //数据端口	 
#define	DS18B20_DQ_OUT_4 PCout(0) //数据端口	 
#define	DS18B20_DQ_IN_4  PCin(0)  //数据端口	 
   	
u8 DS18B20_Init(void);			//初始化DS18B20
short DS18B20_Get_Temp(void);	//获取温度
void DS18B20_Start(void);		//开始温度转换
void DS18B20_Write_Byte(u8 dat);//写入一个字节
//u8 DS18B20_Read_Byte(void);		//读出一个字节
u8 DS18B20_Read_Bit_CH1(void);		//读出一个位
u8 DS18B20_Read_Bit_CH2(void);		//读出一个位
u8 DS18B20_Read_Bit_CH3(void);		//读出一个位
u8 DS18B20_Read_Bit_CH4(void);		//读出一个位
u8 DS18B20_Check(u8 channel);			//检测是否存在DS18B20
void DS18B20_Rst(void);			//复位DS18B20    
extern short DS18B20_Get_Temp_CH1;//通道1的DS18B20温度数据
extern short DS18B20_Get_Temp_CH2;
extern short DS18B20_Get_Temp_CH3;
extern short DS18B20_Get_Temp_CH4;


#endif
