5.6 Board-Specific Information for Solo Type User Interrupts
All boards with interrupt capability may use the After and Instead types of user interrupts. However only the boards listed below have Solo type user interrupt capability. For each of these boards, all valid combinations for the DSCUSERINT structure are listed along with a description of the behavior. See the user interrupt example program in each board's example program set for more explanation.
Diamond-MM-AT
On Diamond-MM-AT, user interrupts are always driven by Counter 0. You have 2 choices for Counter 0's clock source. Diamond-MM-AT and Diamond-MM-16-AT behave identically with respect to user interrupts.
intsource | counter | clksource | Interrupt source |
0 | 0 | 0 | Counter 0, driven by on-board 100Khz clock |
0 | 0 | 1 | Counter 0, driven by external clock source connected to pin 29 on the I/O header (In0- pin) |
Diamond-MM-16-AT
On Diamond-MM-16-AT, user interrupts are always driven by Counter 0. You have 2 choices for Counter 0's clock source. Diamond-MM-AT and Diamond-MM-16-AT behave identically with respect to user interrupts.
{ border=1 ! intsource !! counter !! clksource !! Interrupt source |- | 0 || 0 || 0 || Counter 0, driven by on-board 100Khz clock |- | 0 || 0 || 1 || Counter 0, driven by external clock source connected to pin 29 on the I/O header (In0- pin) |}
Diamond-MM-32-AT
On Diamond-MM-32-AT, user interrupts are always driven by Counter 0. You have 3 choices for Counter 0's clock source:
intsource | counter | clksource | Interrupt source |
0 | 0 | 0 | Counter 0, driven by on-board 10MHz clock |
0 | 0 | 1 | Counter 0, driven by on-board 10KHz clock |
0 | 0 | 2 | Counter 0, driven by external clock source connected to pin 48 on the I/O header J3 (CLK0/DIN0 pin) |
Diamond-MM-48-AT
intsource | counter | counter clksource | Interrupt source |
0 | 0 | 0 | Counter 1, driven by on-board reference clock |
0 | 0 | 1 | Counter 1, driven by external signal Clk0 on J3 |
1 | 0 | 0 | Edges on enabled Digital I/O lines |
2 | 0 | 0 | Edges on enabled Optoinput lines |
Emerald-MM-DIO
Emerald-MM-DIO has no counter/timers. It may be programmed to generate interrupts when a change of state is detected on digital I/O lines on ports 0-2. All parameters for dscuserint are ignored and should be left at 0. However the function must still be called to initiate interrupts. The user interrupt operation is configured with dscEMMDIOSetState.
Garnet-MM-24, Garnet-MM-48
On Garnet-MM, user interrupts are generated by the digital I/O lines C0 on each 82C55. There is no hardware configuration required, so all values for dscuserint are 0. Garnet-MM-24 has one interrupt using C0 on chip no. 1, while Garnet-MM-48 has two interrupts using C0 on each chip.
Onyx-MM
User interrupt features apply only to Onyx-MM. Onyx-MM-DIO has no interrupt capability. On Onyx-MM, dscUserInt.counter is not used and set to 0 in all cases.
intsource | counter | clksource | Interrupt source |
0 | 0 | 0 | Counter 0, clock source is In0 (J5 pin 1) * |
0 | 0 | 1 | Counter 0, clock source is on-board 4MHz oscillator |
1 | 0 | 0 | Counter 1, clock source is In1 (J5 pin 2) * |
1 | 0 | 1 | Counter 1, clock source is on-board 4MHz oscillator |
2 | 0 | 0 | Counter 2, clock source is In2 (J5 pin 7) * |
2 | 0 | 1 | Counter 2, clock source is on-board 4MHz oscillator |
3 | 0 | 0 | Counters 0 & 1 cascaded, clock source is In0 (J5 pin 1) * |
3 | 0 | 1 | Counters 0 & 1 cascaded, clock source is on-board 4MHz oscillator |
4 | 0 | 0 | Counters 1 & 2 cascaded, clock source is In1 (J5 pin 2) * |
4 | 0 | 1 | Counters 1 & 2 cascaded, clock source is on-board 4MHz oscillator |
5 | 0 | 0 | Counters 0 & 1 & 2 cascaded, clock source is In0 (J5 pin 1) * |
5 | 0 | 1 | Counters 0 & 1 & 2 cascaded, clock source is on-board 4MHz oscillator |
6 | 0 | 0 | 82C55 #1 bit C0 (J3 pin 31), IRQ header 1 |
7 | 0 | 0 | 82C55 #2 bit C0 (J4 pin 31), IRQ header 2 |
8 | 0 | 0 | External trigger pin (J5 pin 9), IRQ header 3 |
* In these modes, if clksource = 0 (external clock), then rate = 0 and the user must program the counter/timer(s) beforehand for the desired rate using dscCounterDirectSet(), since the driver has no way of knowing the input frequency in order to determine the proper divider.
Prometheus
On Prometheus, only Counter 1 is used for solo-type user interrupts.
intsource | counter | clksource | Interrupt source |
0 | 0 | 0 | Counter 1, driven by on-board 100KHz clock |
0 | 0 | 1 | Counter 1, driven by on-board 10MHz clock |
1 | 0 | 0 | External trigger, pin 25 on I/O header J14 |
Hercules-EBX
On Hercules, only Counter 1 is used for solo-type user interrupts.
intsource | counter | clksource | Interrupt source |
0 | 0 | 0 | Counter 1, driven by on-board 100KHz clock |
0 | 0 | 1 | Counter 1, driven by on-board 10MHz clock |
1 | 0 | 0 | External trigger |
Last updated