Log in

View Full Version : No Tracking During Autonomous


jdejoannis
09-02-2007, 01:29
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\n,T_Packet_Data.confidence);) 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

Alan Anderson
09-02-2007, 08:01
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.

jdejoannis
09-02-2007, 10:37
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).
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!

DHarris
10-02-2007, 10:59
Where does PWM() have to be?

paulcd2000
10-02-2007, 14:46
at the end of the autonomous mode area, it calls "Generate_Pwms". REplace that with "PWM"