Start Back Next End
  
ZBasic System Library
134
ZBasic Microcontrollers
GetADC (subroutine form)
Type
Subroutine
Invocation
GetADC(pin, val)
GetADC(pin, val, fullScale)
GetADC(pin, val, fullScale, offset)
Parameter
Method
Type
Description
pin
ByVal
Byte
The pin from which to read an analog voltage.
Val
ByRef
Single
The variable in which to return the result.
fullScale
ByVal
Single
The full-scale voltage value.
offset
ByVal
Integral
The offset to apply before scaling.
Discussion
This function performs an analog-to-digital conversion on the signal present on the specified pin that must
be one of the analog port pins (see Resource Usage below).  The return value will be a 10-bit (for
ATmega-based and ATtiny-based devices) or 12-bit (for ATxmega-based devices) digital approximation
of the input voltage with a range from zero to the reference voltage (see below). For the first form, the
returned value is scaled to the range 0.0 to 1.0 and for the remaining forms it is scaled to the range 0.0 to
value of the fullScale parameter. For the third form, the value of the offset parameter (which could be
negative) is added to the ADC value before scaling.  This is useful, for example, for removing the effect of
a non-zero offset voltage of the ADC.
You must make the pin an input before calling this routine.
For ATtiny and ATmega target devices, the conversion is performed using the AVcc reference voltage
(connected internally to Vcc on the ZX-24, ZX-24a, ZX-24p, ZX-24n, ZX-24r, ZX-24s, ZX-24t, ZX-24e, ZX-
24ae, ZX-24ne, ZX-24pe, ZX-24nu, ZX-24pu, ZX-24ru, ZX-24su, ZX-328nu, ZX-128e, ZX-128ne, ZX-
1281e and ZX-1281ne).   For ATxmega target devices, the conversion is performed using a reference
voltage of Vcc/1.6.
Resource Usage
Only analog port pins may be used to perform an analog-to-digital conversion.  The number and location
of analog port pins vary depending on the ZBasic target device.  See the section Analog-to-Digital
Converters for more information.
Most ZBasic target devices contain a single analog-to-digital converter thus allowing only one conversion
to be performed at a time (some have none at all).  The conversion process takes approximately 220uS
during which time the calling task will be awaiting conversion completion.
Compatibility
Although the BasicX manual indicates that that it is not necessary to configure the pin to be an input
before calling, tests indicate that it is, in fact, necessary to do so.  Consequently, the behavior of this
implementation matches the actual behavior of the BasicX platform.  The second and third forms are not
available in BasicX mode.
Previous page Top Next page