Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   No Tracking During Autonomous (http://www.chiefdelphi.com/forums/showthread.php?t=53748)

jdejoannis 09-02-2007 01:29

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\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

Re: No Tracking During Autonomous
 
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

Re: No Tracking During Autonomous
 
Quote:

Originally Posted by Alan Anderson (Post 574842)
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.

Quote:

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

Re: No Tracking During Autonomous
 
Where does PWM() have to be?

paulcd2000 10-02-2007 14:46

Re: No Tracking During Autonomous
 
at the end of the autonomous mode area, it calls "Generate_Pwms". REplace that with "PWM"


All times are GMT -5. The time now is 04:46.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi