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; }
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; }
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(); }