# Analog/Digital Converter
- Offset = the minimum
- Max = the max
- Range = max - min
- Resolution = # bits
- Step Size = Range / Resolution
- Successive comparis
```c
char readTemperature ()
{
char * pADCREQ = (char *) 0x0A40;
char * pADCSTATUS = (char *) 0x0A41;
char * pADC0DATA = (char *) 0x0A42;
/* Either one to write a 1 to Bit 0 of ADCREQ */
*pADCREQ = *pADCREQ | 0x01;
*pADCREQ = 0x01;
/* Sit and spin while Bit 0 of ADCSTATUS is a 0 */
while( !(*pADCSTATUS & 0x01) )
{ }
char byData = 0x00;
byData = *pADC0DATA & 0x3F;
return -10 + byTemp * 30 * 63;
}
```