File: node52.html

package info (click to toggle)
rtlinux 3.1pre3-3
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 4,896 kB
  • ctags: 4,228
  • sloc: ansic: 26,204; sh: 2,069; makefile: 1,414; perl: 855; tcl: 489; asm: 380; cpp: 42
file content (116 lines) | stat: -rw-r--r-- 3,523 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2K.1beta (1.48)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>The A/D Driver</TITLE>
<META NAME="description" CONTENT="The A/D Driver">
<META NAME="keywords" CONTENT="rtic">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="rtic.css">

<LINK REL="next" HREF="node53.html">
<LINK REL="previous" HREF="node51.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node53.html">
</HEAD>

<BODY bgcolor="white">
<!--Navigation Panel-->
<A NAME="tex2html694"
  HREF="node53.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
 SRC="/usr/share/latex2html/icons/next.png"></A> 
<A NAME="tex2html692"
  HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
 SRC="/usr/share/latex2html/icons/up.png"></A> 
<A NAME="tex2html686"
  HREF="node51.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
 SRC="/usr/share/latex2html/icons/prev.png"></A>   
<BR>
<B> Next:</B> <A NAME="tex2html695"
  HREF="node53.html">The D/A Driver</A>
<B> Up:</B> <A NAME="tex2html693"
  HREF="node51.html">Creating I/O Drivers</A>
<B> Previous:</B> <A NAME="tex2html687"
  HREF="node51.html">Creating I/O Drivers</A>
<BR>
<BR>
<!--End of Navigation Panel-->

<H2><A NAME="SECTION00521000000000000000">
The A/D Driver</A>
</H2>
The most basic device driver for an A/D board should contain, as a
minimum, the following template:

<P>
<PRE>
#include ``main.h''            /* needed */

int RTiC_init_AD_card(void)
{
  /* do all card initialization here */	
  return(RTIC_SUCCESS);        /* or RTIC_ERROR, depending */
}

void RTiC_AD1_run(void)
{
  /* do all periodic jobs here */
}

void RTiC_AD2_run(void)
{
  /* do all periodic jobs here */
}

int RTiC_stop_AD_card(void)
{
  /* do all card ``stopping'' functions here */
  return(RTIC_SUCCESS);        /* or RTIC_ERROR, depending */
}
</PRE>

<P>
The first function <TT>RTiC_init_AD_card</TT> is run immediately after
the user releases the ``RUN'' button in <TT>xrtic</TT>. Similarly, the
last function, <TT>RTiC_stop_AD_card</TT> is run immediately after the
user releases the ``STOP'' button in <TT>xrtic</TT>. In both of these
cases, the functions must return either ``RTIC_ERROR'' or
``RTIC_SUCCESS'', depending on whether an error was encountered or
not, respectively.

<P>
The <TT>RTiC_AD1_run</TT> and <TT>RTiC_AD2_run</TT> functions, on the
other hand, have a completely different use. These functions are
called once per controller cycle.  The first function, <TT>RTiC_AD1_run</TT> is used to trigger A/D conversions in the A/D
cards. Then, sometime later, and prior to the execution of the user's
controller, the function <TT>RTiC_AD2_run</TT> will be called, at which
time this function should load the data vector pointer (<TT>float
*RTiC_sensor</TT>) with the sampled data, for example:

<P><PRE>
for (i=0; i&lt;NUM_CONTROL_INPUTS; i++)
   *(RTiC_sensor+i) = INW(AD_BASE);
</PRE>

<P>
<BR><HR>
<ADDRESS>
Michael Barabanov
2001-06-19
</ADDRESS>
</BODY>
</HTML>