-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.cpp
102 lines (83 loc) · 2.42 KB
/
utils.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "wirish.h"
#include "utils.h"
static uint16 init_all_timers_prescale;
void set_prescale(timer_dev *dev) {
timer_set_prescaler(dev, init_all_timers_prescale);
}
void init_all_timers(uint16 prescale) {
init_all_timers_prescale = prescale;
timer_foreach(set_prescale);
}
void enable_usarts(void) {
Serial1.begin(BAUD);
Serial2.begin(BAUD);
Serial3.begin(BAUD);
#if defined(STM32_HIGH_DENSITY) && !defined(BOARD_maple_RET6)
Serial4.begin(BAUD);
Serial5.begin(BAUD);
#endif
}
void disable_usarts(void) {
Serial1.end();
Serial2.end();
Serial3.end();
#if defined(STM32_HIGH_DENSITY) && !defined(BOARD_maple_RET6)
Serial4.end();
Serial5.end();
#endif
}
void print_board_array(const char* msg, const uint8 arr[], int len) {
SerialUSB.print("\t");
SerialUSB.print(msg);
SerialUSB.print(" (");
SerialUSB.print(len);
SerialUSB.print("): ");
for (int i = 0; i < len; i++) {
SerialUSB.print(arr[i], DEC);
if (i < len - 1) SerialUSB.print(", ");
}
SerialUSB.println();
}
//quick method to return if there's anyone on the other end of the serialusb link yet.
boolean isConnected(){
return (SerialUSB.isConnected() && (SerialUSB.getDTR() || SerialUSB.getRTS()));
}
void cmd_board_info(void) { // TODO print more information
SerialUSB.println("Board information");
SerialUSB.println("=================");
SerialUSB.print("* Clock speed (MHz): ");
SerialUSB.println(CYCLES_PER_MICROSECOND);
SerialUSB.print("* BOARD_LED_PIN: ");
SerialUSB.println(BOARD_LED_PIN);
SerialUSB.print("* BOARD_BUTTON_PIN: ");
SerialUSB.println(BOARD_BUTTON_PIN);
SerialUSB.print("* GPIO information (BOARD_NR_GPIO_PINS = ");
SerialUSB.print(BOARD_NR_GPIO_PINS);
SerialUSB.println("):");
print_board_array("ADC pins", boardADCPins, BOARD_NR_ADC_PINS);
print_board_array("PWM pins", boardPWMPins, BOARD_NR_PWM_PINS);
print_board_array("Used pins", boardUsedPins, BOARD_NR_USED_PINS);
}
void delimiter() {
SerialUSB.print(" ");
}
void printkv(const char *k, float v) {
SerialUSB.print(k);
SerialUSB.print(v,6);
delimiter();
}
void printkv(const char *k, int v){
SerialUSB.print(k);
SerialUSB.print(v);
delimiter();
}
void printkv(const char *k, unsigned int v) {
SerialUSB.print(k);
SerialUSB.print(v);
delimiter();
}
void printkv(const char *k, char v) {
SerialUSB.print(k);
SerialUSB.print(v);
delimiter();
}