00001 00002 /******************************************************************* 00003 * 00004 * Project : 00005 * 00006 * Program : adc.c 00007 * 00008 * Author : Klaus Schneider 00009 * 00010 * Description: module contains some ADC routines 00011 * 00012 * $Log: adc.c,v $ 00013 * Revision 1.3 2002/12/03 19:16:06 klaus 00014 * change outb to outp in function ADC_Init 00015 * 00016 * Revision 1.2 2002/11/15 12:46:47 klaus 00017 * add cvs keyword LOG 00018 * 00019 * 00020 * Date Author Comment 00021 * ----------------------------------------------------------------- 00022 * 21.10.2002 Klaus Schneider Basic routine 00023 * 00024 ******************************************************************* 00025 */ 00026 00027 // END INCLUDES ===================================================== 00028 #include "adc.h" 00029 // INCLUDES ========================================================= 00030 00031 00032 // DEFINES ========================================================== 00033 // END DEFINES ====================================================== 00034 00035 00036 // ISR-Prototypes =================================================== 00037 // END ISR-Prototypes =============================================== 00038 00039 00040 // Prototypes ======================================================= 00041 // END Prototypes =================================================== 00042 00043 00044 // Globals ========================================================== 00045 // END Globals ====================================================== 00046 00047 00048 /******************************************************************* 00049 * 00050 * Function : ADC_Init() 00051 * 00052 * Description : 00053 * 00054 * Input : none 00055 * 00056 * Return value : none 00057 * 00058 * Date Author Comment 00059 * ----------------------------------------------------------------- 00060 * 22.08.02 Klaus Schneider Basic routine 00061 * 00062 ******************************************************************* 00063 */ 00064 void ADC_Init( void ) 00065 { 00066 ADCSRA =( (1<< ADEN ) | (1<< ADPS1 ) | (1<< ADPS2 )); 00067 00068 } /* end of function 'ADC_Init' */ 00069 00070 00071 /******************************************************************* 00072 * 00073 * Function : ADC_Init() 00074 * 00075 * Description : 00076 * 00077 * Input : 00078 * 00079 * Return value : 00080 * 00081 * Date Author Comment 00082 * ----------------------------------------------------------------- 00083 * 22.08.02 Klaus Schneider Basic routine 00084 * 00085 ******************************************************************* 00086 */ 00087 unsigned short ADCReadChannel( unsigned char channel ) 00088 { 00089 ADCSRA|= (1<<ADIF); 00090 00091 ADMUX=(channel|0x40); 00092 00093 ADCSRA|= (1<<ADSC); 00094 00095 while( bit_is_clear( ADCSRA , ADIF ) ); // Wait conversion done 00096 00097 // return( __inw( ADCL ) ); // avr-gcc 00098 return(ADC); 00099 } /* end of function 'ADCReadChannel' */