No Tracking During Autonomous

The camera does not track (or do anything) during autonomous mode, but it does a wonderful job during OI mode. Why?

Also, we will want to turn the camera off during OI. How?

Also, my print statements (eg. printf("Confidence=%d
,T_Packet_Data.confidence):wink: are ignored from within user_routines_fast.c. Do I need to use a loop counter to slow things down?

I am using frc_camera_2.1 with last year’s RC (at the moment).

Jason

To receive data from the camera, you have to call Camera_Handler(). To make the camera servos track the light, you have to call Servo_Track(). Add those two lines to the User_Autonomous_Code() function, immediately after the call to Getdata(&rxdata).

You should also remove the call to Generate_Pwms() and replace it with a call to PWM(pwm13,pwm14,pwm15,pwm16) instead. Kevin’s camera code uses non-twitchy interrupt-based signal generation for those pins, and calling IFI’s software-based routine will cause conflicts and give unusable output.

To “turn off” the camera, just stop calling Camera_Handler() and Servo_Track() from inside Process_Data_From_Master_uP().

In any code file where you want to use printf(), you need to #include <stdio.h> at the top of the file. The camera code doesn’t do that for user_routines_fast.c, so you’ll have to add it yourself.

Thanks, I will try this. But I don’t fully understand. After all, Process_Data_From_uP, which currently does the handling and tracking, is executed at every step regardless of mode. Why then do handling and tracking stop during autonomous mode? Oh wait! I see it now. That while loop in the User_Autonomous_Code causes it to remain there until the period is over.

In any code file where you want to use printf(), you need to #include <stdio.h> at the top of the file. The camera code doesn’t do that for user_routines_fast.c, so you’ll have to add it yourself.

Oops, I overlooked that even when I #included the camera and tracking headers. Good stuff!

Where does PWM() have to be?

at the end of the autonomous mode area, it calls “Generate_Pwms”. REplace that with “PWM”