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 -
   73   74   75   76   77   78   79   80   81   82   83