LED

Dependencies:   mbed

Fork of LED2 by Charlie Bailey

Revision:
0:287361f0056d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADXL362.h	Thu Oct 29 11:14:56 2015 +0000
@@ -0,0 +1,85 @@
+#ifndef _ADXL362_H_
+#define _ADXL362_H_
+
+#include "mbed.h"
+
+// ACC Registers
+#define ID0 0x00
+#define STATUS 0x0b
+#define FIFO_EL 0x0c
+#define FIFO_EH 0x0d
+#define RESET 0x1f
+#define FIFO_CTL 0x28
+#define FIFO_SAM 0x29
+#define INTMAP1 0x2a
+#define INTMAP2 0x2b
+#define FILTER_CTL 0x2c
+#define POWER_CTL 0x2d
+#define WR_SPI 0x0a
+#define RD_SPI 0x0b
+#define RD_FIFO 0x0d
+#define DOWN 0
+#define UP 1
+#define SAMPLE_SET 128
+
+/*		Class ADXL362: configure and connect to ADXL362 3-axis accelerometer.
+ *		Richard McWilliam
+ *
+ *		Example:
+ *
+ *		#include "mbed.h"
+ *		#include "ADXL362.h"
+ *
+ *		ADXL362 adxl362(p11, p12, p13, p10);  // Accelerometer (mosi, miso, sclk, cs)
+ *
+ *		int main()
+ *		{
+ *		// local variables
+ *		int8_t x8 = 0;
+ *		int8_t y8 = 0;
+ *		int8_t z8 = 0;	
+ *		uint8_t reg;
+ *
+ *		// set up SPI interface
+ *		adxl362.init_spi();
+ *		// Set up accelerometer
+ *		adxl362.init_adxl362();
+ *
+ *		// Check settings
+ *		reg = adxl362.ACC_ReadReg(FILTER_CTL);
+ * 		printf("FILTER_CTL = 0x%X\r\n", reg);
+ *
+ *		adxl362.ACC_GetXYZ8(&x8, &y8, &z8); // Fetch sample from ADXL362
+ *		wait(0.1); // Wait is required in this mode
+ *			
+ *		}
+*/
+class ADXL362 {
+	
+	public:
+		// Set up object for communcation with ADXL362. Pins are mosi, miso, sclk, cs
+		ADXL362(PinName mosi, PinName miso, PinName sclk, PinName cbs);
+		//~ADXL362() {};
+		
+		// Initialise the SPI interface for ADXL362
+		void init_spi();
+		
+		// Initialise ADXL362 in basic capture mode, 8 bit pcakets.
+		void init_adxl362();
+		
+		// Fetch a single set of x,y,z packets indicating acceleration
+		void ACC_GetXYZ8(int8_t* x, int8_t* y, int8_t* z);
+		
+		// Read specified register of ADXL362
+		uint8_t ACC_ReadReg( uint8_t reg );
+		
+		// Write to register of ADXL362
+		void ACC_WriteReg( uint8_t reg, uint8_t cmd );
+	
+	private:
+		SPI SPI_m;
+        DigitalOut CBS_m;		
+
+};
+
+#endif
\ No newline at end of file