00001
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #ifndef _ADCIFB_H_
00049 #define _ADCIFB_H_
00050
00051 #include <avr32/io.h>
00052 #include "compiler.h"
00053
00054
00056 #define ADCIFB_POLL_TIMEOUT 10000
00057
00059 typedef struct
00060 {
00062 unsigned short resolution;
00063
00065 unsigned short shtim;
00066
00068 unsigned short ratio_clkadcifb_clkadc;
00069
00071 unsigned short startup;
00072
00074 bool sleep_mode_enable;
00075 } adcifb_opt_t;
00076
00077
00078
00091 extern long int adcifb_configure( volatile avr32_adcifb_t *adcifb,
00092 adcifb_opt_t *p_adcifb_opt );
00093
00104 long int adcifb_configure_trigger( volatile avr32_adcifb_t *adcifb,
00105 unsigned char trgmod,
00106 unsigned short int trgper );
00107
00108
00114 extern void adcifb_channels_enable( volatile avr32_adcifb_t *adcifb,
00115 unsigned long int channels_mask );
00116
00122 extern void adcifb_channels_disable(volatile avr32_adcifb_t *adcifb,
00123 unsigned long int channels_mask );
00124
00125
00130 extern void adcifb_start_conversion_sequence( volatile avr32_adcifb_t *adcifb );
00131
00132
00141 extern unsigned long adcifb_get_last_data( volatile avr32_adcifb_t *adcifb );
00142
00143
00153 extern long int adcifb_sr_statushigh_wait( volatile avr32_adcifb_t *adcifb,
00154 unsigned long statusMask );
00155
00156
00164 extern bool adcifb_is_ready( volatile avr32_adcifb_t *adcifb );
00165
00166
00174 extern bool adcifb_is_drdy( volatile avr32_adcifb_t *adcifb );
00175
00183 extern bool adcifb_is_ovre( volatile avr32_adcifb_t *adcifb );
00184
00185 #endif // _ADCIFB_H_