Changeset - 602e4c6ac46e
[Not reviewed]
default
0 0 2
ethanzonca@CL-ENS241-08.cedarville.edu - 12 years ago 2013-03-14 16:48:33
ethanzonca@CL-ENS241-08.cedarville.edu
Moved boardtemp files to generic sensors files
2 files changed with 76 insertions and 0 deletions:
0 comments (0 inline, 0 general)
master/master/lib/sensors.c
Show inline comments
 
new file 100644
 
/*
 
 * sensors.c
 
 *
 
 * Created: 11/19/2012 9:25:01 PM
 
 *  Author: kripperger
 
 */ 
 
 
 
#include <inttypes.h>
 
#include <avr/io.h>
 
#include <avr/interrupt.h>
 
#include "../config.h"
 
#include <util/delay.h>
 
#include "sensors.h"
 
#include "i2c.h"
 
 
void sensors_setup() 
 
{
 
	//ADC register configurations for battery level detection on PA0
 
	ADCSRA |= (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);	// Set prescaler for ADC, 128 gives ADC freq of 125 KHz
 
	ADMUX |= (1 << REFS0);									// Set ADC reference voltage to AVCC
 
	//ADMUX |= 0;											// Select ADC0 as the conversion channel (default)
 
	ADCSRA |= (1 << ADATE);									// Enables auto trigger, determined in ADCSRB bits ADTS
 
	ADCSRB &= ~((1 << ADTS2) | (1 << ADTS1) | (1 << ADTS0));// Set ADC auto trigger source to free running mode
 
	ADCSRA |= (1 << ADEN);									// Enable ADC
 
	ADCSRA |= (1 << ADSC);									// Start ADC measurements.  ADC should now continuously run conversions, which are stored in ADCH 0x79	
 
}
 
 
int8_t	boardTemp = 255;	// Board Temperature (from i2c)
 

	
 
void sensors_readBoardTemp()
 
{
 
	boardTemp = i2c_read(BOARDTEMP_ADDR, 0x00);		// Read only the first byte of data (we don't need the resolution here)
 
	boardTemp = ((boardTemp*18)/10) + (32);			// Converting Celsius to Fahrenheit
 
	boardTemp = boardTemp - 3;						// Linear offset
 
}
 

	
 
int8_t sensors_getBoardTemp(void)
 
{
 
	return boardTemp;
 
}
 
 
uint16_t batt;		// Battery voltage (from ADC)
 
 
void sensors_readBatt()
 
{
 
	uint8_t battL = ADCL;					// Read low battery byte from ADC (all 8 bits)
 
	batt = ADCH;					// Read high battery byte from ADC (only two LSBs)
 
	batt = batt << 8;
 
	batt |= battL;
 
}
 
 
uint16_t sensors_getBatt(void)		// Gets battery voltage from variable
 
{
 
	return batt;
 
}
 
\ No newline at end of file
master/master/lib/sensors.h
Show inline comments
 
new file 100644
 
/*
 
 * sensors.h
 
 *
 
 * Created: 11/19/2012 9:24:50 PM
 
 *  Author: kripperger
 
 */ 
 
 
 
#ifndef BOARDTEMP_H_
 
#define BOARDTEMP_H_
 
 
void sensors_setup();
 
 
void sensors_readBoardTemp(void);	// Reads board temperature
 
int8_t sensors_getBoardTemp(void);	// Gets board temperature from variable
 
 
void sensors_readBatt(void);
 
uint16_t sensors_getBatt(void);
 
 
#endif /* BOARDTEMP_H_ */
 
\ No newline at end of file
0 comments (0 inline, 0 general)