ADC not initializing

I’m using the latest 2008 ifi_frc_sensor code from I’m trying to get ADC initialized so that I can use the gyroscope, but when I try to call Initialize_ADC() inside of the Initialization() function and upload the code to the robot, the robot’s Program State light continues blinking as though it’s still downloading the code but it has already completed. I tried to do a bit of debugging with the Initialize_ADC() function and I discovered that when I comment out the line that says “T4CONbits.TMR4ON = 1;”, line 222, the robot doesn’t get stuck blinking the amber Program State light, but obviously I don’t get good gyro values.

Thanks in advance for any help,

Did you follow the steps in the readme.txt file?

By default the analog to digital and gyro software is disabled.
Perform these steps to get your gyro working:

  1. Enable the Initialize_ADC() and Initialize_Gyro() functions in
  2. Enable the timer 4 interrupt service routine in ifi_frc.h
  3. Make sure timer 4 is disabled at the top of timers.h.
  4. Depending on the operating modes you will be using the gyro,
    place calls to the Process_Gyro_Data() function in the disabled.c/
    Disabled_Spin(), autonomous.c/Autonomous_Spin() and/or teleop.c/
    Teleop_Spin() functions.
  5. Add gyro bias calibration code that will execute before you
    use your gyro. Example calibration code has been placed in
    disabled.c/Disabled() that can be used for the competition (this
    requires that you use a mode dongle to emulate the field
    controller, which will put you in disabled mode for a period of
    time before transitioning to autonomous mode). For testing
    purposes you can also use the example code in teleop.c/Teleop()
    to make sure your gyro is working.
  6. Follow the instructions in adc_readme.txt, adc.h, gyro_readme.txt,
    and gyro.h for information related to installation and calibration
    of your gyro.
  7. If building for the 2004 or 2005 PIC18F8520 based robot controller,
    you will need to use the adc_8520.c source file instead of adc.c.
    The header file adc.h will work with either version.
  8. If building for the 2004 or 2005 PIC18F8520 based robot controller,
    you will need to enable the ADC interrupt service routine in


Thank you. I apologize for not reading the read me more carefully. I forgot step 2. This gyro is really neat.