Nut/OS  4.10.3
API Reference
A/D Converter

ATmega128 On-Chip ADC. More...

Collaboration diagram for A/D Converter:

Defines

#define ADC_PRESCALE_DIV2   0x00
 0x01,0x00 -> CPU clk/2
#define ADC_PRESCALE_DIV4   0x02
 0x02 -> CPU clk/4
#define ADC_PRESCALE_DIV8   0x03
 0x03 -> CPU clk/8
#define ADC_PRESCALE_DIV16   0x04
 0x04 -> CPU clk/16
#define ADC_PRESCALE_DIV32   0x05
 0x05 -> CPU clk/32
#define ADC_PRESCALE_DIV64   0x06
 0x06 -> CPU clk/64
#define ADC_PRESCALE_DIV128   0x07
 0x07 -> CPU clk/128
#define ADC_INITIAL_CHANNEL   ADC0
#define ADC_INITIAL_REF   AVCC
#define ADC_INITIAL_MODE   SINGLE_CONVERSION
#define ADC_INITIAL_PRESCALE   ADC_PRESCALE_DIV64
#define ADC_BUF_SIZE   16
#define AVR_SLEEP_CTRL_REG   MCUCR
#define _adc_buf_head   ADC_BUF_SIZE
#define _adc_buf_tail   (ADC_BUF_SIZE+1)

Typedefs

typedef enum adc_ref_type adc_ref_t
typedef enum adc_mode_type adc_mode_t
typedef enum adc_channel_type adc_channel_t

Enumerations

enum  adc_ref_type { AVCC = 0, AREF, INTERNAL_256 }
enum  adc_mode_type {
  ADC_OFF, FREE_RUNNING, SINGLE_CONVERSION, ADC_OFF,
  FREE_RUNNING_T0, FREE_RUNNING_T1, FREE_RUNNING_T2, FREE_RUNNING_EXT,
  SINGLE_CONVERSION
}

Functions

void ADCInit (void)
void ADCSetRef (adc_ref_t reference)
void ADCSetMode (adc_mode_t mode)
uint8_t ADCSetPrescale (uint8_t prescalar)
void ADCSetChannel (adc_channel_t adc_channel)
void ADCBufferFlush (void)
void ADCStartConversion (void)
void ADCStartLowNoiseConversion (void)
void ADCStopConversion (void)
uint8_t ADCRead (uint16_t *value)
adc_mode_t ADCGetMode (void)
int ADCBufRead (uint16_t *buf, uint16_t *read)
int ADCBufWrite (uint16_t *buf, uint16_t *write)
void ADCBufInit (uint16_t *buf)

Variables

uint8_t adc_sleep_mode = SLEEP_MODE_ADC
adc_mode_t current_mode = ADC_OFF
uint16_tADC_buffer = NULL
enum  adc_channel_type {
  ADC0 = 0, ADC1 = 1, ADC2 = 2, ADC3 = 3,
  ADC4 = 4, ADC5 = 5, ADC6 = 6, ADC7 = 7,
  ADC0 = 0, ADC1 = 1, ADC2 = 2, ADC3 = 3,
  ADC4 = 4, ADC5 = 5, ADC6 = 6, ADC7 = 7,
  ADC_MAX_CHANNEL = 8
}
 enum declaring possible ADC channels More...

Detailed Description

ATmega128 On-Chip ADC.


Define Documentation

#define ADC_PRESCALE_DIV2   0x00

0x01,0x00 -> CPU clk/2

Definition at line 97 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV4   0x02

0x02 -> CPU clk/4

Definition at line 98 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV8   0x03

0x03 -> CPU clk/8

Definition at line 99 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV16   0x04

0x04 -> CPU clk/16

Definition at line 100 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV32   0x05

0x05 -> CPU clk/32

Definition at line 101 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV64   0x06

0x06 -> CPU clk/64

Definition at line 102 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_PRESCALE_DIV128   0x07

0x07 -> CPU clk/128

Definition at line 103 of file adc.h.

Referenced by ADCSetPrescale().

#define ADC_INITIAL_CHANNEL   ADC0

Definition at line 99 of file adc.c.

Referenced by ADCInit().

#define ADC_INITIAL_REF   AVCC

Definition at line 103 of file adc.c.

Referenced by ADCInit().

#define ADC_INITIAL_MODE   SINGLE_CONVERSION

Definition at line 107 of file adc.c.

Referenced by ADCInit().

#define ADC_INITIAL_PRESCALE   ADC_PRESCALE_DIV64

Definition at line 111 of file adc.c.

Referenced by ADCInit().

#define ADC_BUF_SIZE   16

Definition at line 114 of file adc.c.

Referenced by ADCBufRead(), ADCBufWrite(), and ADCInit().

#define AVR_SLEEP_CTRL_REG   MCUCR

Definition at line 123 of file adc.c.

Referenced by ADCStartLowNoiseConversion().

#define _adc_buf_head   ADC_BUF_SIZE

Definition at line 141 of file adc.c.

Referenced by ADCBufInit(), ADCBufRead(), and ADCBufWrite().

#define _adc_buf_tail   (ADC_BUF_SIZE+1)

Definition at line 142 of file adc.c.

Referenced by ADCBufInit(), ADCBufRead(), and ADCBufWrite().


Typedef Documentation

typedef enum adc_ref_type adc_ref_t

Definition at line 61 of file adc.h.

typedef enum adc_mode_type adc_mode_t

Definition at line 79 of file adc.h.

Definition at line 95 of file adc.h.


Enumeration Type Documentation

Enumerator:
AVCC 
AREF 
INTERNAL_256 

Definition at line 54 of file adc.h.

Enumerator:
ADC_OFF 
FREE_RUNNING 
SINGLE_CONVERSION 
ADC_OFF 
FREE_RUNNING_T0 
FREE_RUNNING_T1 
FREE_RUNNING_T2 
FREE_RUNNING_EXT 
SINGLE_CONVERSION 

Definition at line 72 of file adc.h.

enum declaring possible ADC channels

dev/at91_adc.h

Enumerator:
ADC0 
ADC1 
ADC2 
ADC3 
ADC4 
ADC5 
ADC6 
ADC7 
ADC0 
ADC1 
ADC2 
ADC3 
ADC4 
ADC5 
ADC6 
ADC7 
ADC_MAX_CHANNEL 

Definition at line 83 of file adc.h.


Function Documentation

void ADCInit ( void  )

Definition at line 190 of file adc.c.

void ADCSetRef ( adc_ref_t  reference)

Definition at line 213 of file adc.c.

References ADCStopConversion(), AREF, AVCC, cbi, INTERNAL_256, and sbi.

Referenced by ADCInit().

Here is the call graph for this function:

void ADCSetMode ( adc_mode_t  mode)

Definition at line 236 of file adc.c.

Referenced by ADCInit(), and ADCStartLowNoiseConversion().

uint8_t ADCSetPrescale ( uint8_t  prescalar)

Definition at line 253 of file adc.c.

References ADC_PRESCALE_DIV128, ADC_PRESCALE_DIV16, ADC_PRESCALE_DIV2, ADC_PRESCALE_DIV32, ADC_PRESCALE_DIV4, ADC_PRESCALE_DIV64, ADC_PRESCALE_DIV8, ADCStopConversion(), cbi, and sbi.

Referenced by ADCInit().

Here is the call graph for this function:

void ADCSetChannel ( adc_channel_t  adc_channel)

Definition at line 307 of file adc.c.

References inb, and outb.

Referenced by ADCInit().

void ADCBufferFlush ( void  )

Definition at line 316 of file adc.c.

References ADC_buffer, and ADCBufInit().

Here is the call graph for this function:

void ADCStartConversion ( void  )

Definition at line 321 of file adc.c.

void ADCStartLowNoiseConversion ( void  )

Definition at line 326 of file adc.c.

References _BV, adc_sleep_mode, ADCSetMode(), AVR_SLEEP_CTRL_REG, sbi, and SINGLE_CONVERSION.

Here is the call graph for this function:

void ADCStopConversion ( void  )

Definition at line 346 of file adc.c.

References cbi, current_mode, FREE_RUNNING, and sbi.

Referenced by ADCSetMode(), ADCSetPrescale(), and ADCSetRef().

uint8_t ADCRead ( uint16_t value)

Definition at line 360 of file adc.c.

References ADC_buffer, and ADCBufRead().

Here is the call graph for this function:

adc_mode_t ADCGetMode ( void  ) [inline]

Definition at line 365 of file adc.c.

References current_mode.

int ADCBufRead ( uint16_t buf,
uint16_t read 
) [inline]

Definition at line 146 of file adc.c.

References _adc_buf_head, _adc_buf_tail, and ADC_BUF_SIZE.

int ADCBufWrite ( uint16_t buf,
uint16_t write 
) [inline]

Definition at line 159 of file adc.c.

References _adc_buf_head, _adc_buf_tail, and ADC_BUF_SIZE.

void ADCBufInit ( uint16_t buf)

Definition at line 172 of file adc.c.

References _adc_buf_head, and _adc_buf_tail.

Referenced by ADCBufferFlush(), and ADCInit().


Variable Documentation

uint8_t adc_sleep_mode = SLEEP_MODE_ADC

Definition at line 117 of file adc.c.

Referenced by ADCStartLowNoiseConversion().

Definition at line 130 of file adc.c.

Referenced by ADCGetMode(), ADCSetMode(), and ADCStopConversion().

Definition at line 144 of file adc.c.

Referenced by ADCBufferFlush(), ADCInit(), and ADCRead().