Line 38: Line 38:
  
 
=ADC=
 
=ADC=
<syntaxhighlight lang="c">
 
/*----------------------------------------------------------------------------------
 
                                    Avr ADC library.
 
  
Filename: adc.c
 
Controller: Atmega8/16/32/128
 
Oscillator: 11.0592 MHz
 
Author: XploreLabz
 
website: www.xplorelabz.com
 
Reference:Atmega32 dataSheet
 
----------------------------------------------------------------------------------*/
 
  
 +
                                    '''Avr ADC library'''
 +
 +
*''Filename: adc.c''
 +
*''Controller: Atmega8/16/32/128''
 +
*''Oscillator: 11.0592 MHz''
 +
*''Author: XploreLabz''
 +
*''website: www.xplorelabz.com ''
 +
*''Reference:Atmega32 dataSheet''
 +
 +
<syntaxhighlight lang="c">
  
 
#include<avr/io.h>
 
#include<avr/io.h>
 
#include <util/delay.h>
 
#include <util/delay.h>
 
#include "adc.h"
 
#include "adc.h"
 +
</syntaxhighlight>
  
  
/*----------------------------------------------------------------------------------
 
</syntaxhighlight>
 
==ADC_Init()==
 
-----------------------------------------------------------------------------------
 
* I/P Arguments: none.
 
* Return value : none
 
  
* description :This function initializes the ADC control registers
+
==ADC_Init()==
-----------------------------------------------------------------------------------*/
+
* ''description :This function initializes the ADC control registers''
 +
* ''I/P Arguments: none''
 +
* ''Return value: none''
 +
<syntaxhighlight lang="c">
 
void ADC_Init()
 
void ADC_Init()
 
  {
 
  {
Line 70: Line 68:
 
   ADMUX=0x00;  //Result right justified, select channel zero
 
   ADMUX=0x00;  //Result right justified, select channel zero
 
   }
 
   }
 +
</syntaxhighlight>
 +
  
/*----------------------------------------------------------------------------------
 
 
==ADC_StartConversion()==
 
==ADC_StartConversion()==
  -----------------------------------------------------------------------------------
+
* ''description :This function does the ADC conversioin for the Selected Channel
* I/P Arguments: char(channel number).
+
                and returns the converted 10bit result''
* Return value : int(10 bit ADC result)
+
* ''I/P Arguments: char(channel number)''
 +
* ''Return value : int(10 bit ADC result)''
 +
 
 +
  
* description  :This function does the ADC conversioin for the Selected Channel
 
                and returns the converted 10bit result
 
------------------------------------------------------------------------------------*/
 
 
<syntaxhighlight lang="c">  
 
<syntaxhighlight lang="c">  
 
unsigned int ADC_StartConversion(unsigned char channel)
 
unsigned int ADC_StartConversion(unsigned char channel)

Revision as of 15:33, 22 October 2013

Introduction

Overview:

This manual is designed to help embedded programmers and students, rapidly exploit the Avr(Atmega)-Controller for embedded applications. This manual has been targeted at embedded systems programmers and Students who have basic knowledge of Avr(Atmega32/Avr) architecture and C-Language.

This manual provides the reference to all the library functions which are grouped under respective .c file.

The .c files convention is as per the peripherals. The peripherals (lcd, keypad..) are connected to default PORTs which can be connect to required  PORTs by changing the #defines .

Reference:

    It is recommended to go through the below reference documents and datasheets before interfacing any peripherals.

1. The Avr Microcontroller and Embedded Systems by Muhammad Ali Mazidi. 2. Atmega32 DataSheet. 3. Embedded C by Michael J Pont . 4. Any of the 16x2 lcd datasheet. 5. RTC-DS1307 from Dallas Semiconductors.


Feedback:

Suggestions for additions and improvements in code and documentation are always welcome. Please send your feedback via e-mail to feedback@xplorelabz.com

Disclaimer:

The libraries have been tested for Atmega16 on different development boards. We strongly believe that the library works on any Atmega boards. However, Xplore Labz disclaims any kind of hardware failure resulting out of usage of libraries, directly or indirectly. Documentation may be subject to change without prior notice.

The usage of tools and software demonstrated in the document are for educational purpose only, all rights pertaining to these belong to the respective owners. Users must ensure license terms are adhered to, for any use of the demonstrated software.

GNU GENERAL PUBLIC LICENSE: The library code in this document is licensed under GNU General Public License (GPL) Copyright (C) 2012.

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Since the library is licensed free of charge, there is no warranty for the libraries and the entire risk of the quality and performance is with the user.

Errors and omissions should be reported to feedback@xplorelabz.com




ADC

                                   Avr ADC library
  • Filename: adc.c
  • Controller: Atmega8/16/32/128
  • Oscillator: 11.0592 MHz
  • Author: XploreLabz
  • website: www.xplorelabz.com
  • Reference:Atmega32 dataSheet
#include<avr/io.h>
#include <util/delay.h>
#include "adc.h"


ADC_Init()

  • description :This function initializes the ADC control registers
  • I/P Arguments: none
  • Return value: none
void ADC_Init()
 {
   ADCSRA=0x81;  //Enable ADC , sampling freq=osc_freq/2
   ADMUX=0x00;   //Result right justified, select channel zero
  }


ADC_StartConversion()

  • description  :This function does the ADC conversioin for the Selected Channel
                and returns the converted 10bit result
  • I/P Arguments: char(channel number)
  • Return value : int(10 bit ADC result)


 
unsigned int ADC_StartConversion(unsigned char channel)
 {
   ADMUX=channel;         
   _delay_ms(5);           
   ADCSRA=0xc1;           
   while((ADCSRA & (1<<ADIF)==0); 
    return(ADCW);
 }