amiro-os / devices / LightRing / global.hpp @ 58fe0e0b
History | View | Annotate | Download (2.3 KB)
1 |
#ifndef AMIRO_GLOBAL_HPP_
|
---|---|
2 |
#define AMIRO_GLOBAL_HPP_
|
3 |
|
4 |
#include <hal.h> |
5 |
|
6 |
#include <board.h> |
7 |
#include <amiro/bus/i2c/HWI2CDriver.hpp> |
8 |
#include <amiro/bus/spi/HWSPIDriver.hpp> |
9 |
#include <amiro/leds/tlc5947.hpp> |
10 |
#include <amiro/eeprom/at24.hpp> |
11 |
#include <amiro/FileSystemInputOutput/FSIOLightRing.hpp> |
12 |
#include <LightRing.h> |
13 |
#include <amiro/Lidar.h> |
14 |
#include <amiro/radio/a2500r24a.hpp> |
15 |
#include <amiro/serial_reset/serial_can_mux.hpp> |
16 |
#include <userthread.hpp> |
17 |
|
18 |
namespace amiro {
|
19 |
|
20 |
class Global final |
21 |
{ |
22 |
public:
|
23 |
I2CConfig i2c2_config{ |
24 |
/* I2C mode */ OPMODE_I2C,
|
25 |
/* frequency */ 400000, |
26 |
/* I2C fast mode duty cycle */ FAST_DUTY_CYCLE_2
|
27 |
}; |
28 |
|
29 |
SerialConfig sd1_config{ |
30 |
/* speed */ 115200, |
31 |
/* CR1 register */ 0, |
32 |
/* CR2 register */ 0, |
33 |
/* CR3 register */ 0 |
34 |
}; |
35 |
SerialConfig sd2_config{ |
36 |
/* speed */ 19200, |
37 |
/* CR1 register */ 0, |
38 |
/* CR2 register */ 0, |
39 |
/* CR3 register */ 0 |
40 |
}; |
41 |
|
42 |
SPIConfig spi1_config{ |
43 |
/* callback function pointer */ NULL, |
44 |
/* chip select line port */ GPIOC,
|
45 |
/* chip select line pad number */ GPIOC_LIGHT_XLAT,
|
46 |
/* initialzation data */ SPI_CR1_BR_0 | SPI_CR1_BR_1
|
47 |
}; |
48 |
SPIConfig spi2_config{ |
49 |
/* callback function pointer */ NULL, |
50 |
/* chip select line port */ GPIOB,
|
51 |
/* chip select line pad number */ GPIOB_WL_SS_N,
|
52 |
/* initialzation data */ SPI_CR1_BR_0
|
53 |
}; |
54 |
|
55 |
/**
|
56 |
* @brief I2C Bus 2
|
57 |
* Conected devices:
|
58 |
* AT24Cxx
|
59 |
*/
|
60 |
HWI2CDriver HW_I2C2; |
61 |
|
62 |
HWSPIDriver HW_SPI1; |
63 |
HWSPIDriver HW_SPI2; |
64 |
|
65 |
TLC5947 tlc5947; |
66 |
|
67 |
AT24 at24c01; |
68 |
fileSystemIo::FSIOLightRing memory; |
69 |
|
70 |
LightRing robot; |
71 |
|
72 |
SerialCanMux sercanmux1; |
73 |
|
74 |
Lidar lidar; |
75 |
|
76 |
A2500R24A a2500r24a; |
77 |
|
78 |
UserThread userThread; |
79 |
|
80 |
uint8_t shellTermID; |
81 |
|
82 |
public:
|
83 |
Global() : |
84 |
HW_I2C2(&I2CD2), |
85 |
HW_SPI1(&SPID1, &spi1_config), HW_SPI2(&SPID2, &spi2_config), |
86 |
tlc5947(&HW_SPI1, GPIOA, GPIOA_LIGHT_BLANK), |
87 |
at24c01(0x400u / 0x08u, 0x08u, 500u, &HW_I2C2), |
88 |
memory(at24c01, /*BMSV*/ 1, /*bmsv*/ 2, /*HMV*/ 1, /*hmv*/ 0), |
89 |
robot(&CAND1, &tlc5947, &memory), |
90 |
sercanmux1(&SD1, &CAND1, CAN::LIGHT_RING_ID), |
91 |
lidar(CAN::LIGHT_RING_ID, Lidar::SETUP::POWER_ONLY), |
92 |
a2500r24a(&HW_SPI2), |
93 |
userThread() |
94 |
{ |
95 |
return;
|
96 |
} |
97 |
|
98 |
~Global() |
99 |
{ |
100 |
return;
|
101 |
} |
102 |
}; |
103 |
|
104 |
} // end of namespace amiro
|
105 |
|
106 |
#endif /* AMIRO_GLOBAL_HPP_ */ |