Page 78 - 2
P. 78
int c=0,I_RH,speed=0;
void Request()
{
DDRC |= (1<<DHT11_PIN);
PORTC &= ~(1<<DHT11_PIN);
delay_ms(20);
PORTC |= (1<<DHT11_PIN);
}
void Response()
{
DDRC &= ~(1<<DHT11_PIN);
while(PINC & (1<<DHT11_PIN));
while((PINC & (1<<DHT11_PIN))==0);
while(PINC & (1<<DHT11_PIN));
}
int Receive_data()
{
int q;
for (q=0; q<8; q++)
{
while((PINC & (1<<DHT11_PIN)) == 0);
delay_us(30);
if(PINC & (1<<DHT11_PIN))
c = (c<<1)|(0x01);
else
c = (c<<1);
while(PINC & (1<<DHT11_PIN));
}
return c;
}
void sensoring(){
Request();
Response();
I_RH = Receive_data(); // receive I_RH data
}
void PWM_init(){
TCCR0B=0b00000101;
TCNT0=0x00;
}
- 78 -