Skip to content

Commit 16334cc

Browse files
committed
Update processing takes < 2ms, so run at 10ms frequency.
1 parent f209947 commit 16334cc

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

lisa-arduino.ino

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,12 @@ void setup() {
9494
navigator.attachSteeringServo(STEERING_SERVO_PIN);
9595
}
9696

97-
const long UPDATE_FREQUENCY_MS = 50;
97+
const long UPDATE_FREQUENCY_MS = 10;
9898

99+
float avgWorkMs;
100+
long minWorkMs;
101+
long maxWorkMs;
102+
long workCount = 0;
99103
bool started = false;
100104
long startedTimestamp = 0;
101105
long lastUpdatedTimestamp = 0;
@@ -115,6 +119,9 @@ void loop() {
115119
emergencyStop();
116120
}
117121
else {
122+
avgWorkMs = 0.0;
123+
minWorkMs = 2147483647;
124+
maxWorkMs = 0;
118125
start();
119126
}
120127
return;
@@ -129,6 +136,7 @@ void loop() {
129136
long timestamp = millis();
130137
if (millis() - lastUpdatedTimestamp > UPDATE_FREQUENCY_MS) {
131138
// Update position, waypoint, check done, and navigation
139+
timestamp = millis();
132140
Position position = tracker.update();
133141
manager.update(position);
134142
if (manager.finished()) {
@@ -137,6 +145,11 @@ void loop() {
137145
navigator.update(position, manager.getWaypoint());
138146
lastUpdatedTimestamp = millis();
139147
}
148+
long workElapsedMs = millis() - timestamp;
149+
// Calculate running average of time in loop
150+
minWorkMs = min(minWorkMs, workElapsedMs);
151+
maxWorkMs = max(maxWorkMs, workElapsedMs);
152+
avgWorkMs = (avgWorkMs * float(workCount) + workElapsedMs)/++workCount;
140153
}
141154
}
142155

@@ -184,6 +197,12 @@ void stop() {
184197
Serial.print("**** END NAVIGATION -- ");
185198
Serial.print(float(duration) / 1000.0);
186199
Serial.println("s ****");
200+
Serial.print("WORK: avg=");
201+
Serial.print(avgWorkMs);
202+
Serial.print(", min=");
203+
Serial.print(minWorkMs);
204+
Serial.print(", max=");
205+
Serial.println(maxWorkMs);
187206
}
188207
blink(LED_PIN, 3, 100, 100);
189208
}

0 commit comments

Comments
 (0)