Skip to content

Commit 213c526

Browse files
committed
added ability to set fps
1 parent 0e53d00 commit 213c526

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

pybricks/experimental/odometry.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ volatile bool odom_running = false;
2929
volatile uint32_t last_odom_time_ms = 0;
3030
volatile uint32_t last_pursuit_time_ms = 0;
3131

32+
volatile uint32_t fps = 200;
33+
volatile uint32_t mstowait = 5;
3234
volatile float global_x = 0.0f, global_y = 0.0f, global_h = 0.0f;
3335
volatile int32_t last_left_angle = 0, last_right_angle = 0;
3436
float odom_deg_to_mm = 1.0f;
@@ -60,7 +62,7 @@ void pb_background_odometry_update(void) {
6062
if (!left_servo_ptr || !right_servo_ptr) return;
6163

6264
// --- RATE CAP: 200 Hz (5ms) ---
63-
if (now - last_odom_time_ms < 5) return;
65+
if (now - last_odom_time_ms < mstowait) return;
6466
last_odom_time_ms = now;
6567
// ------------------------------
6668
vm_loop_counter++;
@@ -97,7 +99,7 @@ void pb_background_pursuit_update(void) {
9799

98100
// --- RATE CAP: 100 Hz (10ms) ---
99101
uint32_t now = mp_hal_ticks_ms();
100-
if (now - last_pursuit_time_ms < 10) return;
102+
if (now - last_pursuit_time_ms < mstowait) return;
101103
last_pursuit_time_ms = now;
102104
// -------------------------------
103105

@@ -144,7 +146,9 @@ mp_obj_t experimental_start_odometry(size_t n_args, const mp_obj_t *args) {
144146
global_x = mp_obj_get_float(args[4]);
145147
global_y = mp_obj_get_float(args[5]);
146148
global_h = mp_obj_get_float(args[6]);
147-
149+
fps = mp_obj_get_int(args[7]);
150+
151+
mstowait = 1000 / fps;
148152
int32_t unused;
149153
pbio_servo_get_state_user(left_servo_ptr, (int32_t*)&last_left_angle, &unused);
150154
pbio_servo_get_state_user(right_servo_ptr, (int32_t*)&last_right_angle, &unused);
@@ -153,6 +157,8 @@ mp_obj_t experimental_start_odometry(size_t n_args, const mp_obj_t *args) {
153157
return mp_const_none;
154158
}
155159

160+
161+
156162
mp_obj_t experimental_get_odometry(void) {
157163
mp_obj_t tuple[3] = {
158164
mp_obj_new_float_from_f(global_x),

0 commit comments

Comments
 (0)