Don't ad-block us - support your favorite websites. We have safe, unobstrusive, robotics related ads that you actually want to see - see here for more.
0 Members and 1 Guest are viewing this topic.
#include "sys/axon2.h"#include "uart.h"#include "rprintf.h"#include "servos.h"#include "a2d.h"// Make my one lonely servoSERVO elbow_servo = MAKE_SERVO(FALSE, H5, 1500, 500);SERVO_LIST servos[] = {&elbow_servo};SERVO_DRIVER bank1 = MAKE_SERVO_DRIVER(servos);// Initialize hardwarevoid appInitHardware(void){ // Initialize USB uartInit(UART1, 115200); // rprintf to USB rprintfInit(&uart1SendByte); // Initialize hardware PWM servos servoPWMInit(&bank1); // Pretty sure this is how they are initially // set, but it couldn't hurt to set it to stop. act_setSpeed(&elbow_servo, 0);}// Initialize softwareTICK_COUNT appInitSoftware(TICK_COUNT loopStart){ return 0; // Don't stop, man!}// Start main loopTICK_COUNT appControl(LOOP_COUNT loopCount, TICK_COUNT loopStart){ while(1){ // Set servo to center act_setSpeed(&elbow_servo, DRIVE_SPEED_CENTER); delay_ms(20); // Print the speed uint8_t speed1 = act_getSpeed(&elbow_servo); rprintf("Servo speed: %u\n", &speed1); } return 20000;}
#include "sys/axon2.h"#include "uart.h"#include "rprintf.h"#include "servos.h"#include "a2d.h"// Make my one lonely servoSERVO elbow_servo = MAKE_SERVO(FALSE, H5, 1500, 500);SERVO_LIST servos[] = {&elbow_servo};SERVO_DRIVER bank1 = MAKE_SERVO_DRIVER(servos);// Initialize hardwarevoid appInitHardware(void){ // Initialize USB uartInit(UART1, 115200); // rprintf to USB rprintfInit(&uart1SendByte); // Initialize hardware PWM servos servoPWMInit(&bank1); // Pretty sure this is how they are initially // set, but it couldn't hurt to set it to stop. act_setSpeed(&elbow_servo, 0);}// Initialize softwareTICK_COUNT appInitSoftware(TICK_COUNT loopStart){ return 0; // Don't stop, man!}// Start main loopTICK_COUNT appControl(LOOP_COUNT loopCount, TICK_COUNT loopStart){ // Set servo to left act_setSpeed(&elbow_servo, -70); delay_ms(2000); // Set servo to right act_setSpeed(&elbow_servo, 70); delay_ms(2000); // Print the speed uint8_t speed1 = act_getSpeed(&elbow_servo); rprintf("Servo speed: %u\n", &speed1); return 0;}
I only just realized it would be important to note (sorry) that hyperterminal (and minicom in linux) returns "Servo speed: 8677" repeatedly, with no change to the value.
// Print the speed int8_t speed1 = act_getSpeed(&elbow_servo); rprintf("Servo speed: %d\n", &speed1);
try this:Code: [Select] // Print the speed int8_t speed1 = act_getSpeed(&elbow_servo); rprintf("Servo speed: %d\n", &speed1);
// Print the speed DRIVE_SPEED speed1 = act_getSpeed(&elbow_servo); rprintf("Servo speed: %d\n", speed1);