
Department of Computer Science and Electronics
35
8. Appendix
Appendix A. C code
//*********************************************************************
// Author: Miren Itsaso Martinez & David Calvo
// Last update: 10
th
May 2007
//*********************************************************************
#include <mega16.h>
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <util/delay.h>
#define EEMEN __atributte__((section(".eeprom")))
#define ENABLE 2
#define EN_TRANSISTOR 3
//Function declaration
void init_function(void);
unsigned int read_data(unsigned int);
void calibrar(void);
void result_calibration_eeprom(void);
void send_sensors_state(void);
static unsigned int val[8] __attribute__((section(".eeprom")));
unsigned char my_address,address,function,add_one,dades=0x00,my_UDR;
unsigned int data_sensor[8],result_c[8],i;
void init_function(void)
{
WDTCR=0x0F;
my_address=0x01;
for(i=0;i<=7;i++)
{
result_c[i]= eeprom_read_word((unsigned int*) &val[i]);
wdt_reset ();
}
//Port Initialization
PORTD=0X00;
DDRD=0X0C;//POTD.2 output(enable) and PORTD.3 also activates
external transistor
//Initialization UART
UCSRA|=0x00;
UCSRB|=(1<<RXEN)|(1<<TXEN);
UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
UBRRH|=0x00;
UBRRL=0X67;//16MHz,9600baud
//Initialization ADC but no START yet
ADMUX=0X00;
ADCSRA=0X87; //division factor 128./125kHz
Kommentare zu diesen Handbüchern