ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
main.c File Reference
#include "fw_hal.h"
#include "adxl345.h"
#include <stdio.h>

Go to the source code of this file.

Functions

void SPI_Init (void)
 
void GPIO_Init (void)
 
void INT_Init ()
 
 INTERRUPT (Int2_Routine, EXTI_VectInt2)
 
 INTERRUPT (Int3_Routine, EXTI_VectInt3)
 
int main (void)
 

Variables

volatile uint8_t count_int2 = 0
 
volatile uint8_t count_int3 = 0
 
volatile uint8_t count_double_tap = 0
 
volatile int16_t x
 
volatile int16_t y
 
volatile int16_t z
 

Function Documentation

◆ GPIO_Init()

void GPIO_Init ( void  )

Definition at line 56 of file main.c.

57{
58 // Configure GPIO pins before SPI and device
59 // MISO(P33), MOSI(P34)
61 // SCLK(P32), CS(P35),
63 // INT2(P36), INT3(P37)
65}
#define GPIO_P3_SetMode(__PINS__, __MODE__)
Definition: fw_gpio.h:89
@ GPIO_Pin_5
Definition: fw_gpio.h:50
@ GPIO_Pin_2
Definition: fw_gpio.h:47
@ GPIO_Pin_4
Definition: fw_gpio.h:49
@ GPIO_Pin_3
Definition: fw_gpio.h:48
@ GPIO_Pin_6
Definition: fw_gpio.h:51
@ GPIO_Pin_7
Definition: fw_gpio.h:52
@ GPIO_Mode_Input_HIP
Definition: fw_gpio.h:25
@ GPIO_Mode_Output_PP
Definition: fw_gpio.h:24
@ GPIO_Mode_InOut_QBD
Definition: fw_gpio.h:23

◆ INT_Init()

void INT_Init ( )

Definition at line 67 of file main.c.

68{
72}
#define EXTI_Int2_SetIntState(__STATE__)
Definition: fw_exti.h:140
#define EXTI_Int3_SetIntState(__STATE__)
Definition: fw_exti.h:139
#define EXTI_Global_SetIntState(__STATE__)
Definition: fw_exti.h:115
@ HAL_State_ON
Definition: fw_types.h:71

◆ INTERRUPT() [1/2]

INTERRUPT ( Int2_Routine  ,
EXTI_VectInt2   
)

Definition at line 74 of file main.c.

75{
76 count_int2++;
78 {
80 }
81
82}
uint8_t ADXL345_IsInterrupt(uint8_t interrupt)
Definition: adxl345.c:82
#define ADXL345_INT_DOUBLE_TAP
Definition: adxl345.h:68
volatile uint8_t count_int2
Definition: main.c:33
volatile uint8_t count_double_tap
Definition: main.c:33

◆ INTERRUPT() [2/2]

INTERRUPT ( Int3_Routine  ,
EXTI_VectInt3   
)

Definition at line 84 of file main.c.

85{
86 count_int3++;
90}
uint16_t ADXL345_ReadInt(uint8_t addr)
Definition: adxl345.c:30
#define ADXL345_REG_DATAY0
Definition: adxl345.h:54
#define ADXL345_REG_DATAZ0
Definition: adxl345.h:56
#define ADXL345_REG_DATAX0
Definition: adxl345.h:52
volatile uint8_t count_int3
Definition: main.c:33
volatile int16_t y
Definition: main.c:34
volatile int16_t z
Definition: main.c:34
volatile int16_t x
Definition: main.c:34

◆ main()

int main ( void  )

Definition at line 92 of file main.c.

93{
95 GPIO_Init();
97 SPI_Init();
98 INT_Init();
106 );
107 // Tap threshold: 62.5mg / LSB, value = 2.5g / 0.0625g = 0x28
109 // Tap duration: 625us / LSB, value = 0.02s / 0.000625s = 0x20
111 // Tap latency: 1.25ms / LSB, value = 0.1s / 0.00125s = 0x50
113 // Tap window: 1.25ms / LSB, value = 0.3s / 0.00125s = 0xF0
120
121 // read to clear interrupts, or the counter will never receive interrupts
126
127 while(1)
128 {
129 printf("X:%6d, Y:%6d, Z:%6d, DAT:%3d, TAP:%3d, 2-TAP:%3d\r\n",
131 SYS_Delay(50);
132 }
133}
__WEAK_ATY void printf(uint8_t *,...)
uint8_t ADXL345_ReadByte(uint8_t addr)
Definition: adxl345.c:20
void ADXL345_SetInterrupts(uint8_t interrupts)
Definition: adxl345.c:72
void ADXL345_EnableTapDetectOnAxes(uint8_t axes)
Definition: adxl345.c:88
HAL_StatusTypeDef ADXL345_Init(ADXL345_DataRate_t dataRate, ADXL345_SPI_Wire_t spiWire, ADXL345_IntActive_t intLevel, ADXL345_DataResolve_t resolve, ADXL345_DataAlignment_t alignment, ADXL345_G_Range_t range)
Definition: adxl345.c:50
void ADXL345_RemapInterrupts(uint8_t interrupts)
Definition: adxl345.c:77
void ADXL345_WriteByte(uint8_t addr, uint8_t dat)
Definition: adxl345.c:41
#define ADXL345_REG_DUR
Definition: adxl345.h:35
#define ADXL345_TAP_DETECT_AXIS_Z
Definition: adxl345.h:75
@ ADXL345_DATARATE_100_HZ
Definition: adxl345.h:88
#define ADXL345_REG_THRESH_TAP
Definition: adxl345.h:31
@ ADXL345_DATA_RESOLVE_FULL
Definition: adxl345.h:131
#define ADXL345_REG_LATENT
Definition: adxl345.h:36
@ ADXL345_G_RANGE_8G
Definition: adxl345.h:148
#define ADXL345_INT_DATA_READY
Definition: adxl345.h:66
#define ADXL345_REG_INT_SOURCE
Definition: adxl345.h:50
@ ADXL345_DATA_ALIGNMENT_RIGHT
Definition: adxl345.h:138
#define ADXL345_REG_WINDOW
Definition: adxl345.h:37
@ ADXL345_SPI_WIRE_4
Definition: adxl345.h:114
@ ADXL345_INT_ACTIVE_LOW
Definition: adxl345.h:123
#define ADXL345_TAP_DETECT_AXIS_Y
Definition: adxl345.h:76
#define ADXL345_INT_SINGLE_TAP
Definition: adxl345.h:67
#define ADXL345_TAP_DETECT_AXIS_X
Definition: adxl345.h:77
void SYS_SetClock(void)
Definition: fw_sys.c:40
void SYS_Delay(uint16_t t)
Definition: fw_sys.c:65
@ UART1_BaudSource_Timer1
Definition: fw_uart.h:33
void UART1_Config8bitUart(UART1_BaudSource_t baudSource, HAL_State_t _1TMode, uint32_t baudrate)
Definition: fw_uart.c:56
void GPIO_Init(void)
Definition: main.c:39
void SPI_Init(void)
Definition: main.c:36
void INT_Init()
Definition: main.c:67

◆ SPI_Init()

void SPI_Init ( void  )

Definition at line 36 of file main.c.

37{
38 // ADXL345, SPI CLK max frequency is 5MHz
40 // Clock is high when idle
42 // Data transfer is driven by lower SS pin
44 // MSB first
46 // Define the output pins
48 // Ignore SS pin, use MSTR to swith between master/slave mode
50 // Master mode
52 // Start SPI
54}
#define SPI_SetClockPrescaler(__PRE_SCALER__)
Definition: fw_spi.h:88
#define SPI_SetPort(__ALTER_PORT__)
Definition: fw_spi.h:92
#define SPI_SetDataOrder(__ORDER__)
Definition: fw_spi.h:70
@ SPI_ClockPreScaler_16
Definition: fw_spi.h:47
#define SPI_SetEnabled(__STATE__)
Definition: fw_spi.h:69
#define SPI_SetClockPolarity(__STATE__)
Definition: fw_spi.h:78
#define SPI_SetClockPhase(__PHASE__)
Definition: fw_spi.h:84
@ SPI_ClockPhase_TrailingEdge
Definition: fw_spi.h:54
#define SPI_IgnoreSlaveSelect(__STATE__)
Definition: fw_spi.h:68
#define SPI_SetMasterMode(__STATE__)
Definition: fw_spi.h:71
@ SPI_AlterPort_P35_P34_P33_P32
Definition: fw_spi.h:39
@ SPI_DataOrder_MSB
Definition: fw_spi.h:59

Variable Documentation

◆ count_double_tap

volatile uint8_t count_double_tap = 0

Definition at line 33 of file main.c.

◆ count_int2

volatile uint8_t count_int2 = 0

Definition at line 33 of file main.c.

◆ count_int3

volatile uint8_t count_int3 = 0

Definition at line 33 of file main.c.

◆ x

volatile int16_t x

Definition at line 34 of file main.c.

◆ y

volatile int16_t y

Definition at line 34 of file main.c.

◆ z

volatile int16_t z

Definition at line 34 of file main.c.