SparkFun Forums 

Where electronics enthusiasts find answers.

Questions &/or issues related to products in the Movement & IMU category should be posted in this forum.
User avatar
By luisvc91
#206127
Hi,

I am working with ADXL345 sensor and the Sparkfun library.
I have some questions about the library....
Here is the code
Code: Select all
/*************************** RATE BITS ******************************/
/*                                                                  */
double ADXL345::getRate(){
	byte _b;
	readFrom(ADXL345_BW_RATE, 1, &_b);
	_b &= B00001111;
	return (pow(2,((int) _b)-6)) * 6.25;
}

void ADXL345::setRate(double rate){
	byte _b,_s;
	int v = (int) (rate / 6.25);
	int r = 0;
	while (v >>= 1)
	{
		r++;
	}
	if (r <= 9) { 
		readFrom(ADXL345_BW_RATE, 1, &_b);
		_s = (byte) (r + 6) | (_b & B11110000);
		writeTo(ADXL345_BW_RATE, _s);
	}
}


1.- In the funcion geRate, what does "(pow(2,((int) _b)-6)) * 6.25" do? I could not understand it....
2.- In the funciton setRate:
2.1.- Why do I do " int v = (int) (rate / 6.25)"??
2.2.- In general, I can understand anything about that from int r=0...

Thank you for your help.

Best regards,

Luis