Why do I only get one minor-frame-overflow interrupt when it happens more that once?

The minor-frame-overflow interrupt works differently from other interrupts. You get only one interrupt until you reset the card. This is because a minor-frame-overflow should never occur. If it does you already lost messages, and there is nothing you can do about it.

You should design minor-frames and frame rates so as not to get minor frame-overflows. To determine, on a frame-by-frame basis, if there is a minor-frame-overflow, set an interrupt at the beginning of each minor frame and check the "mfo" bit in the orphan_hardware_bits register (0B6-0xB7). This bit gets set if there is a minor-frame-overflow. If it is set, you had a minor-frame-overflow on the last minor frame. This is a "sticky" bit, so you must clear it when there is a minor-frame-overflow.

Attached is an example of setting interrupts on BC messages. This program sets up a minor frame with an interrupt on the first message. The interrupt updates the data in one of the BC messages.

Click the link on the right to download this example.