📄 manual_board-specific_information_for_solo_type_user_interrupts.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head><title>Board-Specific Information for Solo Type User Interrupts - Universal Driver Documentation</title><meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"><meta name="robots" content="index,follow"><link rel="shortcut icon" href="/favicon.ico"><link rel="stylesheet" href="/dscud/style/wikiprintable.css"><script type="text/javascript" src="/dscud/style/wikibits.js"></script><style type='text/css'><!--a.new, #quickbar a.new { color: #CC2200; }#quickbar { position: absolute; top: 4px; left: 4px; border-right: 1px solid gray; }#article { margin-left: 152px; margin-right: 4px; }//--></style></head><body bgcolor='#FFFFFF'><div class='titlebox'><h1 class='pagetitle'>Board-Specific Information for Solo Type User Interrupts</h1><span class='subtitle'>Universal Driver Documentation</span></div><div class='navbox'><a href="manual_Main_Page.html" class='printable' title ="Main Page">Main Page</a> || <a href="manual_Table_of_Contents.html" class='printable' title ="Table of Contents">Table_of_Contents</a> || <a href="http://www.diamondsystems.com/">Diamond Systems Website</a></div></div><div class='bodytext'><a name="top"></a>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.
<p>
<p><table border="0" id="toc"><tr><td align="center"><b>Table of contents</b> <script type='text/javascript'>showTocToggle("show","hide")</script></td></tr><tr id='tocinside'><td align="left"><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Diamond-MM-AT">1 Diamond-MM-AT </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Diamond-MM-16-AT">2 Diamond-MM-16-AT </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Diamond-MM-32-AT">3 Diamond-MM-32-AT </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Diamond-MM-48-AT">4 Diamond-MM-48-AT </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Emerald-MM-DIO">5 Emerald-MM-DIO </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Garnet-MM-24,_Garnet-MM-48">6 Garnet-MM-24, Garnet-MM-48 </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Onyx-MM">7 Onyx-MM </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Prometheus">8 Prometheus </A><BR></div><div style="margin-bottom:0px;"><A CLASS="internal" HREF="#Hercules-EBX">9 Hercules-EBX </A><BR></div></td></tr></table><P><h3><a name="Diamond-MM-AT"> <a href="manual_Diamond-MM-AT.html" class='printable' title ="Diamond-MM-AT">Diamond-MM-AT</a> </a></h3>
<p>
On <a href="manual_Diamond-MM-AT.html" class='printable' title ="Diamond-MM-AT">Diamond-MM-AT</a>, user interrupts are always driven by Counter 0. You have 2 choices for Counter 0's clock source. <a href="manual_Diamond-MM-AT.html" class='printable' title ="Diamond-MM-AT">Diamond-MM-AT</a> and <a href="manual_Diamond-MM-16-AT.html" class='printable' title ="Diamond-MM-16-AT">Diamond-MM-16-AT</a> behave identically with respect to user interrupts.
<p>
<table border=1><tr ><TH>intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 0, driven by on-board 100Khz clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 0, driven by external clock source connected to pin 29 on the I/O header (In0- pin)</TD></tr></table><p>
<h3><a name="Diamond-MM-16-AT"> <a href="manual_Diamond-MM-16-AT.html" class='printable' title ="Diamond-MM-16-AT">Diamond-MM-16-AT</a> </a></h3>
<p>
On <a href="manual_Diamond-MM-16-AT.html" class='printable' title ="Diamond-MM-16-AT">Diamond-MM-16-AT</a>, user interrupts are always driven by Counter 0. You have 2 choices for Counter 0's clock source. <a href="manual_Diamond-MM-AT.html" class='printable' title ="Diamond-MM-AT">Diamond-MM-AT</a> and <a href="manual_Diamond-MM-16-AT.html" class='printable' title ="Diamond-MM-16-AT">Diamond-MM-16-AT</a> behave identically with respect to user interrupts.
<p>
{\ 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)
|}<p><h3><a name="Diamond-MM-32-AT"> <a href="manual_Diamond-MM-32-AT.html" class='printable' title ="Diamond-MM-32-AT">Diamond-MM-32-AT</a> </a></h3>
<p>
On <a href="manual_Diamond-MM-32-AT.html" class='printable' title ="Diamond-MM-32-AT">Diamond-MM-32-AT</a>, user interrupts are always driven by Counter 0. You have 3 choices for Counter 0's clock source:
<p>
<table border=1><tr ><TH> intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 0, driven by on-board 10MHz clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 0, driven by on-board 10KHz clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 2 </TD><TD> Counter 0, driven by external clock source connected to pin 48 on the I/O header J3 (CLK0/DIN0 pin)</TD></tr></table><p>
<h3><a name="Diamond-MM-48-AT"> <a href="manual_Diamond-MM-48-AT.html" class='printable' title ="Diamond-MM-48-AT">Diamond-MM-48-AT</a> </a></h3>
<p>
<table border=1><tr ><TH> intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 1, driven by on-board reference clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 1, driven by external signal Clk0 on J3</TD></tr><tr ><TD> 1 </TD><TD> 0 </TD><TD> 0 </TD><TD> Edges on enabled Digital I/O lines</TD></tr><tr ><TD> 2 </TD><TD> 0 </TD><TD> 0 </TD><TD> Edges on enabled Optoinput lines</TD></tr></table><p>
<h3><a name="Emerald-MM-DIO"> <a href="manual_Emerald-MM-DIO.html" class='printable' title ="Emerald-MM-DIO">Emerald-MM-DIO</a> </a></h3>
<p>
<a href="manual_Emerald-MM-DIO.html" class='printable' title ="Emerald-MM-DIO">Emerald-MM-DIO</a> 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 <tt><a href="manual_DscEMMDIOSetState.html" class='printable' title ="DscEMMDIOSetState">dscEMMDIOSetState</a></tt>(). See page 123 for information on this function.<p><h3><a name="Garnet-MM-24,_Garnet-MM-48"> <a href="manual_Garnet-MM.html" class='printable' title ="Garnet-MM">Garnet-MM-24</a>, <a href="manual_Garnet-MM.html" class='printable' title ="Garnet-MM">Garnet-MM-48</a> </a></h3>
<p>
On <a href="manual_Garnet-MM.html" class='printable' title ="Garnet-MM">Garnet-MM</a>, 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. <a href="manual_Garnet-MM.html" class='printable' title ="Garnet-MM">Garnet-MM-24</a> has one interrupt using C0 on chip no. 1, while <a href="manual_Garnet-MM.html" class='printable' title ="Garnet-MM">Garnet-MM-48</a> has two interrupts using C0 on each chip.
<p>
<h3><a name="Onyx-MM"> <a href="manual_Onyx-MM.html" class='printable' title ="Onyx-MM">Onyx-MM</a> </a></h3>
<p>
User interrupt features apply only to <a href="manual_Onyx-MM.html" class='printable' title ="Onyx-MM">Onyx-MM</a>. <a href="manual_Onyx-MM-DIO.html" class='printable' title ="Onyx-MM-DIO">Onyx-MM-DIO</a> has no interrupt capability.
On <a href="manual_Onyx-MM.html" class='printable' title ="Onyx-MM">Onyx-MM</a>, <tt><a href="manual_DscUserInt.html" class='printable' title ="DscUserInt">dscUserInt</a>.counter</tt> is not used and set to 0 in all cases.
<p>
<table border=1><tr ><TH>intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 0, clock source is In0 (J5 pin 1) *</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 0, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 1 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 1, clock source is In1 (J5 pin 2) *</TD></tr><tr ><TD> 1 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 1, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 2 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 2, clock source is In2 (J5 pin 7) *</TD></tr><tr ><TD> 2 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 2, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 3 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counters 0 & 1 cascaded, clock source is In0 (J5 pin 1) *</TD></tr><tr ><TD> 3 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counters 0 & 1 cascaded, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 4 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counters 1 & 2 cascaded, clock source is In1 (J5 pin 2) *</TD></tr><tr ><TD> 4 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counters 1 & 2 cascaded, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 5 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counters 0 & 1 & 2 cascaded, clock source is In0 (J5 pin 1) *</TD></tr><tr ><TD> 5 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counters 0 & 1 & 2 cascaded, clock source is on-board 4MHz oscillator</TD></tr><tr ><TD> 6 </TD><TD> 0 </TD><TD> 0 </TD><TD> 82C55 #1 bit C0 (J3 pin 31), IRQ header 1</TD></tr><tr ><TD> 7 </TD><TD> 0 </TD><TD> 0 </TD><TD> 82C55 #2 bit C0 (J4 pin 31), IRQ header 2</TD></tr><tr ><TD> 8 </TD><TD> 0 </TD><TD> 0 </TD><TD> External trigger pin (J5 pin 9), IRQ header 3</TD></tr></table><p>
<ul><li> 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.
</li></ul><p>
<h3><a name="Prometheus"> Prometheus </a></h3>
<p>
On Prometheus, only Counter 1 is used for solo-type user interrupts.
<p>
<table border=1><tr ><TH> intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 1, driven by on-board 100KHz clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 1, driven by on-board 10MHz clock</TD></tr><tr ><TD> 1 </TD><TD> 0 </TD><TD> 0 </TD><TD> External trigger, pin 25 on I/O header J14</TD></tr></table><p>
<h3><a name="Hercules-EBX"> Hercules-EBX </a></h3>
On Hercules, only Counter 1 is used for solo-type user interrupts.
<p>
<table border=1><tr ><TH> intsource </TH><TH> counter </TH><TH> clksource </TH><TH> Interrupt source</TH></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 0 </TD><TD> Counter 1, driven by on-board 100KHz clock</TD></tr><tr ><TD> 0 </TD><TD> 0 </TD><TD> 1 </TD><TD> Counter 1, driven by on-board 10MHz clock</TD></tr><tr ><TD> 1 </TD><TD> 0 </TD><TD> 0 </TD><TD> External trigger</TD></tr></table><p></div><p><em> <br> This page was last modified 10:34, 12 Feb 2004.<br>Copyright (c) 2004 Diamond Systems. All Rights Reserved.</em><!-- Time since request: 0.20 secs. --></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -