Interrupts with RobotPy

I know interrupts work with RobotPy, since encoders and counters are covered.

How do I create an interrupt with RobotPy?

Say I have the ADIS16448 IMU that I would like to use the DataReady output for to call an ISR. And yes, I know what I’m doing probably won’t work well. Python is probably too slow to handle real time interrupts.

Some example code would be great!


Encoders and counters do not use interrupts. They are polled by the FPGA.

What he said.

… I’ve never tried doing WPILib interrupts in python. They certainly won’t do anything in the simulator, and chances are they mostly work on the real robot, but there are probably edge cases where you’ll get a weird exception (this is how I2C/SPI was until I actually had some hardware to do testing with).

I would recommend finding some Java code and translating it into python, and then file bug reports on github when you find it doesn’t work. :slight_smile:

I’ll try to find some Java code then.

I’m guessing the FPGA has RTL for handling encoders and counters then. (It makes sense). I always forget the RoboRIO is half processor, half FPGA. I’m used to just processors. :slight_smile:

The Java roborio library for the adis16448 uses interrupts for the same purpose you want.

Yep. I figured that one out. :slight_smile: