コード例 #1
0
ファイル: DS18B20_driver.c プロジェクト: gitmail/avr-fatfs
//------------------------------------------------------------------------------
// 1-wire总线复位
//------------------------------------------------------------------------------
unsigned char reset_18B20(void)
{
	char bus_flag;
	CLI();
	SET_DQ;
	SET_OUT;
 	
  	Delay_nus(1);
  	CL_DQ;
  	Delay_nus(550);		//拉低至少480us时间
  	SET_DQ;				//释放
					NOP();
					NOP();
  	SET_IN;				//输入
  	Delay_nus(60);
  	
						//等待回复
  	bus_flag = IN_DQ;
  	
  	Delay_nus(240);		//回复的低电平在60到240US
  	SET_OUT;
					NOP();
					NOP();
  	SET_DQ;				//回到初始DQ=1;

  	SEI();
	if(bus_flag){
		return FALSE;
	}else{
		return TRUE;
	}

}
コード例 #2
0
ファイル: DS18B20_driver.c プロジェクト: gitmail/avr-fatfs
//------------------------------------------------------------------------------
// 读一位从总线
//------------------------------------------------------------------------------
unsigned char read_bit_18B20(void)
{
	unsigned char k;
	SET_OUT;
	CL_DQ;			//读时间片开始,拉低总线至少1us
	Delay_nus(1);
	
					//SET_DQ;	
	SET_IN;
	Delay_nus(4);
	k=IN_DQ;    	//读数据,从低位开始
	Delay_nus(10);
	SET_DQ;	
				NOP();
				NOP();
	SET_OUT;
	    NOP();
					NOP();
	if(k){
	    return 1;
	}else{
	    return 0;
	}
	
}
コード例 #3
0
ファイル: 12864.c プロジェクト: cquxutao/Competition
/*******12864初始化函数********************************************/
void init12864lcd(void)
{   GPIO_SetBits(GPIOE, GPIO_Pin_3);   //PSB_SET;
   Delay_mus(500);
   write_12864com(0x30);
   Delay_nus(500);
   write_12864com(0x30);
   Delay_nus(500);
   write_12864com(0x0c);
   Delay_nus(500);
   write_12864com(0x01);
   Delay_nus(25);
  // write_12864com(0x06);
 //  Delay_nus(2500);
  // write_12864com(0x0c);
   Delay_nus(500);
}
コード例 #4
0
ファイル: DS18B20_driver.c プロジェクト: gitmail/avr-fatfs
//------------------------------------------------------------------------------
// 写一位到总线
//------------------------------------------------------------------------------
void write_bit_18B20(char bitval)
{
    SET_OUT;
					NOP();
					NOP();
			 CL_DQ;
	   Delay_nus(1);
	   if(bitval){    //写数据,从低位开始
		     SET_DQ;
	  }else{
		     CL_DQ;
	  }
	Delay_nus(40);		//15~60us
	SET_DQ;
	Delay_nus(10);
}
コード例 #5
0
ファイル: DS18B20_driver.c プロジェクト: gitmail/avr-fatfs
//------------------------------------------------------------------------------
// 读一个字节
//------------------------------------------------------------------------------
unsigned char read_byte_18B20(void)
{
	unsigned char temp,n;
    CLI();
  	temp=0;
    for(n=0;n<8;n++)
    {
      	if(read_bit_18B20()){
      		temp|=(1<<n);
      	}else{
      		temp&=~(1<<n);
      	}
      	Delay_nus(70); //60~120us
      	
   }
   SEI();

   return temp;
}
コード例 #6
0
ファイル: 12864.c プロジェクト: cquxutao/Competition
/*******ms级别延时********************************************/ 
void Delay_mus(unsigned int nCount)
{
    while(nCount--)
    Delay_nus(1100);
}