diff --git a/examples/servo/main.c b/examples/servo/main.c index a6df805f9..d8b837b0d 100644 --- a/examples/servo/main.c +++ b/examples/servo/main.c @@ -17,7 +17,7 @@ int main(void) { uint16_t angle = 0; uint16_t index = 0; // the first index available. - if (libtock_read_servo_angle(index, &angle) == RETURNCODE_ENODEVICE) { + if (libtock_servo_read_angle(index, &angle) == RETURNCODE_ENODEVICE) { printf("\n The index number is bigger than the available servomotors\n"); return -1; } @@ -25,14 +25,12 @@ int main(void) { // Changes the angle of the servomotor from 0 to 180 degrees (waiting 0.1 ms between every change). for (int i = 0; i <= 180; i++) { // `result` stores the returned code received from the driver. - result = libtock_set_servo_angle(index, i); + result = libtock_servo_set_angle(index, i); if (result == RETURNCODE_SUCCESS) { libtocksync_alarm_delay_ms(100); // Verifies if the function successfully returned the current angle. - if (libtock_read_servo_angle(index, &angle) == RETURNCODE_SUCCESS) { + if (libtock_servo_read_angle(index, &angle) == RETURNCODE_SUCCESS) { printf("\nThe current angle is: %d", angle); - } else { - printf("\n This servo cannot return its angle.\n"); } } else if (result == RETURNCODE_EINVAL) { printf("\nThe angle you provided exceeds 360 degrees\n"); @@ -42,4 +40,7 @@ int main(void) { return -1; } } + if (libtock_servo_read_angle(index, &angle) != RETURNCODE_SUCCESS) { + printf("\n This servo cannot return its angle.\n"); + } } diff --git a/libtock/interface/syscalls/servo_syscalls.c b/libtock/interface/syscalls/servo_syscalls.c index fc1a7aeca..cec370657 100644 --- a/libtock/interface/syscalls/servo_syscalls.c +++ b/libtock/interface/syscalls/servo_syscalls.c @@ -16,12 +16,12 @@ returncode_t libtock_servo_count(uint16_t* servo_count) { } -returncode_t libtock_set_servo_angle(uint16_t index, uint16_t angle) { +returncode_t libtock_servo_set_angle(uint16_t index, uint16_t angle) { syscall_return_t cval = command(DRIVER_NUM_SERVO, 2, index, angle); return tock_command_return_novalue_to_returncode(cval); } -returncode_t libtock_read_servo_angle(uint16_t index, uint16_t* angle) { +returncode_t libtock_servo_read_angle(uint16_t index, uint16_t* angle) { uint32_t value = 0; syscall_return_t r = command(DRIVER_NUM_SERVO, 3, index, 0); // Converts the value returned by the servo, stored in `r` diff --git a/libtock/interface/syscalls/servo_syscalls.h b/libtock/interface/syscalls/servo_syscalls.h index 529f84c0a..1099265fd 100644 --- a/libtock/interface/syscalls/servo_syscalls.h +++ b/libtock/interface/syscalls/servo_syscalls.h @@ -13,9 +13,9 @@ bool libtock_servo_exists(void); // Returns the number of available servomotors. returncode_t libtock_servo_count(uint16_t* servo_count); // Change the angle. -returncode_t libtock_set_servo_angle(uint16_t index, uint16_t angle); +returncode_t libtock_servo_set_angle(uint16_t index, uint16_t angle); // Requests the current angle from the servo. -returncode_t libtock_read_servo_angle(uint16_t index, uint16_t* angle); +returncode_t libtock_servo_read_angle(uint16_t index, uint16_t* angle); #ifdef __cplusplus }