Exemple #1
0
static void setfld(naContext c, unsigned char* s, int slen,
                   int bit, int flen, unsigned int fld)
{
    int i;
    if(bit + flen > 8*slen) naRuntimeError(c, "bitfield out of bounds");
    for(i=0; i<flen; i++)
        if(fld & (1<<i)) SETB(s, slen, i+bit);
        else CLRB(s, slen, i+bit);
}
Exemple #2
0
void G_sensor_init(void)
{
	SETB(GSEN_DETECT_PORT_DIR, GSEN_DETECT_PORT_BIT);
	SETB(GSEN_DETECT_PORT_IE, GSEN_DETECT_PORT_BIT);
	CLRB(GSEN_DETECT_PORT_PU, GSEN_DETECT_PORT_BIT);
	CLRB(GSEN_DETECT_PORT_PD, GSEN_DETECT_PORT_BIT);
	if(bSFBusy_Flag == 0)
	{
		i2c_Init(G_SEN_BAUD, G_SEN_WRITE_ADDR,G_SEN_READ_ADDR);
		Gsensor_ID = u8sensor_Read_Gsen_ID();
		if(Gsensor_ID != G_SEN_ID)
		{
			sensor_I2C_port_release();
			return;
		}
		Gsen_Write_Reg(0x44,0x28);		//setting normal not int
		Gsen_Write_Reg(0x45,(G_SEN_XG_CONF | 0x20));
		sen_hold_last_xdata = Gsen_Read_Reg(0x41);
		sen_hold_last_ydata = Gsen_Read_Reg(0x42);
		sen_hold_last_zdata = Gsen_Read_Reg(0x43);
		sensor_I2C_port_release();
	}
}