Beispiel #1
0
void nrf24_read_reg(unsigned short int cmd, unsigned short int *val,unsigned short int num_bytes)
{
  unsigned short int output, i=0;
  CSN = 0;
  output = SPI1_Read(cmd);
  for(i=0; i<num_bytes; ++i)
    val[i] = SPI1_Read(cmd);
  CSN = 1;
}
Beispiel #2
0
unsigned char ReadAcc(unsigned char reg) {
	select_acc();
	SPI1_Write(XL362_REG_READ);
	SPI1_Write(reg);
	unsigned char read_val = SPI1_Read();
	deselect_acc();
	return read_val;
}
Beispiel #3
0
void ADXL362_Init(void){
	/*configure processor for the XL interrupt*/
	/*not currently being used, going off counters in main loop instead
	configure_pin_ss();
	configure_pin_irq();
	configure_irq_direction();
	configure_int_wakeup();
	configure_VIC_int();
	*/	
	configure_trigger_pin();

	configure_cs();	
	deselect_acc();
	rprintf("Pinsel1: %x\n\r", PINSEL1);

	/*configure accelerometer*/

	//enables the FIFO in stream mode, 384 sample deep watermark (128 in 3 axes)
	ConfigureAcc(XL362_FIFO_CTL, (XL362_FIFO_MODE_STREAM | XL362_FIFO_SAMPLES_AH));
	//set int1 to a watermark interrupt (watermark configured in FILTER_CONTROL; 128samples of each axis)
	ConfigureAcc(XL362_INTMAP1, XL362_INT_FIFO_WATERMARK);

	//set the sampling rate to 100Hz ****so the filter is set to 50Hz*****  Does not actually impact sampling rate
	//since it is externally triggered
	ConfigureAcc(XL362_FILTER_CTL, XL362_RATE_100);
	//set into low noise mode
	ConfigureAcc(XL362_POWER_CTL, XL362_LOW_NOISE2);
	//Configure activity interrups to >0 so if enabled, they don't trigger constantly (still not enabled, though)
	ConfigureAcc(XL362_THRESH_ACTH, 0x04);
	ConfigureAcc(XL362_TIME_ACT, 0xFF);
	//Configure external trigger sampling
	ConfigureAcc(XL362_FILTER_CTL, XL362_EXT_TRIGGER);

	//Do this last: enable the accelerometer into measurement mode
	ConfigureAcc(XL362_POWER_CTL, XL362_MEASURE_3D);

	//Clear out all the existing samples in the FIFO
	int samplesInFifo = readNumSamplesFifo();

	select_ADXL362();
	SPI1_Write(XL362_FIFO_READ);
	//2 bytes per sample
	for (int i = 0; i < 2*samplesInFifo; i++) {
		SPI1_Read();
		//rprintf("Accel: %x  %x\n\r", dataOutMSB, dataOutLSB);
		//rprintf("FIFO OUT: %d\n\r", dataOut);  //uncomment to see accel data as it comes from the FIFO
	}
	rprintf("%d samples in the FIFO\n\r", samplesInFifo);
	deselect_ADXL362();

}