Example #1
0
uchar COM()
{
	uchar i,comdata;
	for(i=0;i<8;i++)
	{
		FLAG=2;
		while((!(P1IN&BIT5))&&FLAG++);
        delay_40us();
		TEMP=0;
		if(P1IN&BIT5)
		{
			TEMP=1;
		}
		FLAG=2;
		while((P1IN&BIT5)&&FLAG++);
		if(FLAG==1)
		{
			return 255;
		}
		comdata<<=1;
		comdata|=TEMP;

	}
	return comdata;
}
Example #2
0
void readdht11()
{
	uchar TEMP;
	DSET;
	CLR;
	delay_20ms();
	SET;
	delay_40us();
    SET;
	DCLR;
	if(!(P1IN&BIT5));
	{
		FLAG=2;
		while((!(P1IN&BIT5))&&FLAG++);
		FLAG=2;
		while((P1IN&BIT5)&&FLAG++);
		RH_DATA_H_TEMP=COM();
		RH_DATA_L_TEMP=COM();
		T_DATA_H_TEMP=COM();
		T_DATA_L_TEMP=COM();
		CHECKDATA=COM();

		TEMP=(T_DATA_H_TEMP+T_DATA_L_TEMP+RH_DATA_H_TEMP+RH_DATA_L_TEMP);
		if(TEMP==CHECKDATA)
		{
			RH_DATA_H=RH_DATA_H_TEMP;
			RH_DATA_L=RH_DATA_L_TEMP;
			T_DATA_H=T_DATA_H_TEMP;
			T_DATA_L=T_DATA_L_TEMP;

		}

	}
}
Example #3
0
File: main.c Project: sli92/netcon
/*
 * Initialisiert den Takt auf die maximale Frequenz, beim C8051F340 sind dies
 * 48MHz.
 *
 */
void sysclk_init(void)
{
    OSCICN |= (1 << 1) | (1 << 0);

    /* Siehe C8051F340 Datenblatt, Seite 138 */
    CLKMUL = 0x00;

    CLKMUL |= (1 << 7);
    delay_40us();

    CLKMUL |= (1 << 6);

    while(!(CLKMUL & (1 << 5)));

    CLKSEL |= (1 << 1) | (1 << 0);
}
Example #4
0
File: main.c Project: sli92/netcon
/*
 * Initialisiert den Takt auf die maximale Frequenz, beim C8051F340 sind dies
 * 48MHz.
 *
 */
void sysclk_init(void)
{
    OSCICN |= (1 << _IFCN1) | (1 << _IFCN0);

    /* Siehe C8051F340 Datenblatt, Seite 138 */
    CLKMUL = 0x00;

    CLKMUL |= (1 << _MULEN);

    delay_40us();

    CLKMUL |= (1 << _MULINIT);

    while(!(CLKMUL & (1 << _MULRDY)));

    CLKSEL |= (1 << _CLKSL1) | (1 << _CLKSL0);

    FLSCL |= (1 << _FLRT);
}