s_temperature.c File Reference


Detailed Description

AVR32 UC3 Control Panel temperature sensor module.

Author:
Atmel Corporation: http://www.atmel.com
Support and FAQ: http://support.atmel.no/

Definition in file s_temperature.c.

#include <string.h>
#include <stdio.h>
#include "compiler.h"
#include "s_temperature.h"
#include "board.h"
#include "gpio.h"
#include "adc.h"

Go to the source code of this file.

Functions

Bool b_temperature_get_value (char *buf)
 Get the current temperature value.

Variables

static volatile avr32_adc_t * adc = (volatile avr32_adc_t *) &AVR32_ADC
const unsigned short temperature_code []
 The following table give the correspondance between the ADC code and the temperature Each elements of the table corresponds to an ADC code value.


Function Documentation

Bool b_temperature_get_value ( char *  buf  ) 

Get the current temperature value.

Parameters:
buf char buffer in which the temperature value is stored.
Returns:
TRUE upon success, FALSE if error.

Definition at line 89 of file s_temperature.c.

References adc, and temperature_code.

Referenced by device_full_custom_task().

00090 {
00091    int i_current_val, value, index = 0;
00092 
00093 
00094    /* enable channel for sensor */
00095    adc_enable( adc, ADC_TEMPERATURE_CHANNEL );
00096    // start conversion
00097    adc_start( adc );
00098    // get value for sensor
00099    value = adc_get_value( adc, ADC_TEMPERATURE_CHANNEL );
00100    /* Disable channel for sensor */
00101    adc_disable( adc, ADC_TEMPERATURE_CHANNEL );
00102    
00103    if(value > temperature_code[0])
00104    {
00105         i_current_val = -20;
00106    }
00107    else
00108    {
00109       while(temperature_code[index++] > value);
00110       i_current_val = (index - 1 - 20);
00111    }
00112 
00113    // Build the log string.
00114    sprintf( buf, "%2dC\r\n", i_current_val);
00115    return TRUE;
00116 }


Variable Documentation

volatile avr32_adc_t* adc = (volatile avr32_adc_t *) &AVR32_ADC [static]

ADC cell.

Definition at line 78 of file s_temperature.c.

const unsigned short temperature_code[]

Initial value:

{
   0x3B4,0x3B0,0x3AB,0x3A6,0x3A0,0x39A,0x394,0x38E,0x388,0x381,0x37A,0x373,
   0x36B,0x363,0x35B,0x353,0x34A,0x341,0x338,0x32F,0x325,0x31B,0x311,0x307,
   0x2FC,0x2F1,0x2E6,0x2DB,0x2D0,0x2C4,0x2B8,0x2AC,0x2A0,0x294,0x288,0x27C,
   0x26F,0x263,0x256,0x24A,0x23D,0x231,0x225,0x218,0x20C,0x200,0x1F3,0x1E7,
   0x1DB,0x1CF,0x1C4,0x1B8,0x1AC,0x1A1,0x196,0x18B,0x180,0x176,0x16B,0x161,
   0x157,0x14D,0x144,0x13A,0x131,0x128,0x11F,0x117,0x10F,0x106,0xFE,0xF7,
   0xEF,0xE8,0xE1,0xDA,0xD3,0xCD,0xC7,0xC0,0xBA,0xB5,0xAF,0xAA,0xA4,0x9F,
   0x9A,0x96,0x91,0x8C,0x88,0x84,0x80,0x7C,0x78,0x74,0x71,0x6D,0x6A,0x67,
   0x64,0x61,0x5E,0x5B,0x58,0x55,0x53,0x50,0x4E,0x4C,0x49,0x47,0x45,0x43,
   0x41,0x3F,0x3D,0x3C,0x3A,0x38}
The following table give the correspondance between the ADC code and the temperature Each elements of the table corresponds to an ADC code value.

The index in the table give the corresponding temperature (inC) with the following formula : Tempeature=index-20. table[O] corresponds to -20C temperature code The following table gives the ADC code for VCC=3.3V and Aref=AVcc

Definition at line 65 of file s_temperature.c.

Referenced by b_temperature_get_value().


Generated on Fri Feb 19 02:22:52 2010 for AVR32 - Control Panel demonstration. by  doxygen 1.5.5