Index: firmware/FSC/src/FSC_eth_with_user_interface.c
===================================================================
--- firmware/FSC/src/FSC_eth_with_user_interface.c	(revision 10677)
+++ firmware/FSC/src/FSC_eth_with_user_interface.c	(revision 10697)
@@ -21,11 +21,5 @@
 	bool heartbeat_enable;
 	
-// AD7719 global variables
-	U32 ad7719_values[RESISTANCE_CHANNELS];
-	U08 ad7719_enables[RESISTANCE_CHANNELS/8];
-	U08 ad7719_channels_ready[RESISTANCE_CHANNELS/8];
-	U08 ad7719_readings_since_last_muxing = 0;
-	U08 ad7719_current_channel = 0;
-	U32 ad7719_current_reading = 0;
+
 	bool ad7719_measured_all = false;
 	bool ad7719_values_printed = true;
@@ -33,11 +27,5 @@
 
 // ATMEGA ADC global variables
-	U08 adc_readings_until_mean=250;
-	U32 adc_values[VOLTAGE_CHANNELS]; // stores measured voltage in steps of 16mV
-	U08 adc_enables[VOLTAGE_CHANNELS/8];
-	U08 adc_channels_ready[VOLTAGE_CHANNELS/8];
-	U08 adc_readings_since_last_muxing = 0;
-	U08 adc_current_channel = 0;
-	U16 adc_current_reading = 0;
+	
 	bool adc_measured_all = false;
 	bool adc_values_printed = true;
@@ -53,68 +41,4 @@
 //   M A I N    ---   M A I N    ---   M A I N    ---   M A I N    ---  M A I N    
 //-----------------------------------------------------------------------------
-/*
-int main(void)
-{
-	
-
-	U16 received_bytes;
-	U08 really_downloaded_bytes;
-	while(!usart_rx_ready){
-		received_bytes = get_S0_RX_RSR();
-		
-		
-		
-	
-		if (get_S0_RX_RSR() != 0) { // we have something to read
-			usart_write_str((pU08)"\nReading ");
-			usart_write_U16(get_S0_RX_RSR(), 6);
-			usart_write_str((pU08)" b from W5100\n");
-		
-			while (received_bytes != 0) {
-				really_downloaded_bytes = w5100_get_RX(16, true);
-				usart_write_char('!');
-				usart_write_U08(really_downloaded_bytes,4);
-				usart_write_char('\n');
-				for (U08 i=0; i<really_downloaded_bytes; i++){
-					usart_write_U08_hex(eth_read_buffer[i]);
-					usart_write_char(' ');
-				}
-				received_bytes -= really_downloaded_bytes;
-			}
-		}
-		usart_write_char('\n');
-		
-		_delay_ms(400);
-		_delay_ms(400);
-		_delay_ms(400);
-		_delay_ms(400);
-	}
-	usart_rx_ready = false;
-	
-	bool quit = false;
-	while (!quit) {
-	usart_write_str((pU08)"Enter the string to send to PC or \"XXX\" in order to quit\n");
-		while(!usart_rx_ready){
-			_delay_ms(100);
-		}
-		usart_rx_ready = false;
-	
-		if ( (usart_rx_buffer[0]=='X') &&  (usart_rx_buffer[1]=='X') && (usart_rx_buffer[2]=='X') )
-			quit = true;
-		else {
-			// copy string to W5100 TX buffer and issue 'SEND' command.
-			for (U08 i =0; i<usart_received_chars; i++){
-				eth_write_buffer[i]=usart_rx_buffer[i];
-			}
-			
-			w5100_set_TX(usart_received_chars);
-			
-		}		
-			
-		
-	}
-	
-} // end of main()	
-*/
 int main(void)
 {
@@ -123,8 +47,11 @@
 	spi_init(); 		// Initialize SPI interface as master
 	timer_init();		// set up TIMER2: TIMER2_COMP interrupt occurs every 1ms
-	
+	atmega_adc_init();
+
 	w5100_reset();
 	w5100_init();
 
+	ad7719_init();
+	
 	//  Enable interrupts
 	sei();
@@ -167,24 +94,19 @@
 		if (get_S0_RX_RSR() != 0) { // we have something to read
 			downloaded_bytes = w5100_get_RX(ETH_READ_BUFFER_SIZE, true);
-			usart_write_str((pU08)"got ethernet stream - no. of. bytes:");
-			usart_write_U08(downloaded_bytes,3);
-			usart_write_char('\n');
-			for (U08 i=0; i<downloaded_bytes; i++){
-				usart_write_U08_hex(eth_read_buffer[i]);
-				usart_write_char(' ');
-			}
-			usart_write_char('\n');
-		}
-	}
-	
-//----------------------------------------------------------------------------
+			parse_w5300_incoming( downloaded_bytes );
+		}
+	}
+	
+//----------------------------------------------------------------------------
+
 	if (check_if_adc_measurement_done()) {
+		telegram_start();
+		w5100_set_TX(adc_values, ADC_VALUES_LEN_BYTE);
+
 		if(adc_print_endless){
 			usart_write_str((pU08)"V|");
 			usart_write_U32(sec ,8);
 			print_adc_nicely(false,true);
-			for ( U08 i=0; i<(VOLTAGE_CHANNELS/8); ++i ) {
-				adc_channels_ready[i]=0;
-			}
+			reset_voltage_done();
 		} else 
 		if ( !adc_values_printed) {
@@ -195,11 +117,12 @@
 
 	if (check_if_ad7719_measurement_done()) {
+		telegram_start();
+		w5100_set_TX(ad7719_values, AD7719_VALUES_LEN_BYTE);
+
 		if(ad7719_print_endless){
 			usart_write_str((pU08)"R|");
 			usart_write_U32(sec ,8);
 			print_ad7719_nicely(false,true);
-			for ( U08 i=0; i<(RESISTANCE_CHANNELS/8); ++i ) {
-				ad7719_channels_ready[i]=0;
-			}
+			reset_resistance_done();
 		} else 
 		if ( !ad7719_values_printed) {
@@ -261,20 +184,20 @@
 	//IF ATmega internal ADC did finish a conversion --every 200us
 	if ( (ADCSRA & (1<<ADIF)) && !adc_measured_all) {
-		adc_current_reading = (U16)ADCL;
-		adc_current_reading += (U16)ADCH<<8;
-		if (adc_readings_since_last_muxing == ADC_READINGS_UNTIL_SETTLED+adc_readings_until_mean-1) {
-			adc_channels_ready[adc_current_channel/8] |= (1<<(adc_current_channel%8));
-			adc_current_channel = increase_adc (adc_current_channel);
-			adc_values[adc_current_channel] = 0;
-			Set_V_Muxer(adc_current_channel);
-			adc_readings_since_last_muxing = 0;
+		*adc_current_reading = (U16)ADCL;
+		*adc_current_reading += (U16)ADCH<<8;
+		if (*adc_readings_since_last_muxing == ADC_READINGS_UNTIL_SETTLED+adc_readings_until_mean-1) {
+			adc_channels_ready[*adc_current_channel/8] |= (1<<(*adc_current_channel%8));
+			*adc_current_channel = increase_adc (*adc_current_channel);
+			adc_values[*adc_current_channel] = 0;
+			Set_V_Muxer(*adc_current_channel);
+			*adc_readings_since_last_muxing = 0;
 			_delay_ms(10);
 		}
 		else if (adc_readings_since_last_muxing >= ADC_READINGS_UNTIL_SETTLED-1) {
-			adc_values[adc_current_channel] += adc_current_reading;
-			++adc_readings_since_last_muxing;
+			adc_values[*adc_current_channel] += *adc_current_reading;
+			++(*adc_readings_since_last_muxing);
 		}
 		else  {
-			++adc_readings_since_last_muxing;
+			++(*adc_readings_since_last_muxing);
 		}
 
@@ -285,11 +208,11 @@
 	
 	if (AD7719_IS_READY() && !ad7719_measured_all) {
-		ad7719_current_reading = read_adc(); // --takes at 4MHz SCLK speed about 6us
+		*ad7719_current_reading = read_adc(); // --takes at 4MHz SCLK speed about 6us
 		// AD7719 is only read out if settled. saves time.	
-		if (ad7719_readings_since_last_muxing == AD7719_READINGS_UNTIL_SETTLED-1) {
-			ad7719_values[ad7719_current_channel] = ad7719_current_reading;
-			ad7719_readings_since_last_muxing=0;
+		if (*ad7719_readings_since_last_muxing == AD7719_READINGS_UNTIL_SETTLED-1) {
+			ad7719_values[*ad7719_current_channel] = *ad7719_current_reading;
+			*ad7719_readings_since_last_muxing=0;
 			if (debug_mode) {
-				usart_write_U32_hex(ad7719_current_reading);
+				usart_write_U32_hex(*ad7719_current_reading);
 				usart_write_char('\n');
 				usart_write_char('\n');
@@ -299,11 +222,11 @@
 			// note that this channel is ready, now and 
 			// proceed to the next enabled channel.
-			ad7719_channels_ready[ad7719_current_channel/8] |= (1<<(ad7719_current_channel%8));
-			ad7719_current_channel = increase_ad7719 (ad7719_current_channel);
-			Set_T_Muxer(ad7719_current_channel);
+			ad7719_channels_ready[*ad7719_current_channel/8] |= (1<<(*ad7719_current_channel%8));
+			*ad7719_current_channel = increase_ad7719 (*ad7719_current_channel);
+			Set_T_Muxer(*ad7719_current_channel);
 		} else { // the AD7719 did not settle yet, we discard the reading
-			++ad7719_readings_since_last_muxing;
+			++(*ad7719_readings_since_last_muxing);
 			if (debug_mode) {
-				usart_write_U32_hex(ad7719_current_reading);
+				usart_write_U32_hex(*ad7719_current_reading);
 				usart_write_char('\n'); 
 			}
Index: firmware/FSC/src/ad7719_adc.c
===================================================================
--- firmware/FSC/src/ad7719_adc.c	(revision 10677)
+++ firmware/FSC/src/ad7719_adc.c	(revision 10697)
@@ -8,4 +8,8 @@
 void ad7719_init(void)
 {
+	// setup the SPI interface according to AD7710 specs.
+	// This is needed, because W5100 has different SPI specs.
+	spi_setup_ad7719();	
+	
 
 	// ADC communiaction works like this:
@@ -26,95 +30,125 @@
 
 
-  CLR_BIT(PORTD,SPI_AD_CS);  			// Set CS low
-  spi_transfer_byte(FILTER_RD); // Next Operation is write to IOCON
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  			// Set CS low
-  spi_transfer_byte(0); // Next Operation is write to IOCON
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  			// Set CS low
-  spi_transfer_byte(IOCON_WR); // Next Operation is write to IOCON
-  SET_BIT(PORTD,SPI_AD_CS);
-  
-  _delay_us(50);
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(FILTER_RD); // Next operation is  a read from filter register
+  SET_BIT(PORTD,SPI_AD_CS);
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(0);			// now this read takes place	
+  SET_BIT(PORTD,SPI_AD_CS);
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(IOCON_WR); 			// Next Operation is write to IOCON -- this is a 2byte register
+  SET_BIT(PORTD,SPI_AD_CS);
+  
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
 
   CLR_BIT(PORTD,SPI_AD_CS);
   spi_transfer_byte(IOCON_INIT_HIGH);  	// Write to IOCON1 
   SET_BIT(PORTD,SPI_AD_CS);
-_delay_us(50);
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
   CLR_BIT(PORTD,SPI_AD_CS);
   spi_transfer_byte(IOCON_INIT_LOWBYTE);  	// Write to IOCON2 
-  SET_BIT(PORTD,SPI_AD_CS);	// Set CS high
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  	// Set CS low
-  spi_transfer_byte(FILTER_WR);     	// Next Operation is write to FILTER  Start SPI
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-  CLR_BIT(PORTD,SPI_AD_CS);
-
-  spi_transfer_byte(FILTER_INIT);  	// Write to FILTER 
-  SET_BIT(PORTD,SPI_AD_CS);	// Set CS high
-_delay_us(50);
-  CLR_BIT(PORTD,SPI_AD_CS);  	// Set CS low
-  spi_transfer_byte(AD1CON_WR);     	// Next Operation is write to AD1CON  Start SPI
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);
-  spi_transfer_byte(AD1CON_INIT);  	// Write to AD1CON
-  SET_BIT(PORTD,SPI_AD_CS);	// Set CS high
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  	// Set CS low
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(FILTER_WR);     	// Next Operation is write to FILTER
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(FILTER_INIT);		// Set Filter register to 0x52 --> good for 50Hz noise rejection.
+  SET_BIT(PORTD,SPI_AD_CS);
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(AD1CON_WR);     	// Next Operation is write to AD1CON
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(AD1CON_INIT);  		// auxilliary ADC is not used in this application --> AD7719 data sheet for more info about aux. ADC
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
   spi_transfer_byte(AD0CON_WR);     	// Next Operation is write to AD0CON  Start SPI
   SET_BIT(PORTD,SPI_AD_CS);
 
-_delay_us(50);
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
 
   CLR_BIT(PORTD,SPI_AD_CS);
   spi_transfer_byte(AD0CON_INIT);  	// Write to AD0CON
-  SET_BIT(PORTD,SPI_AD_CS);	// Set CS high
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  	// Set CS low
-  spi_transfer_byte(MODE_WR);     	// Next Operation is write to MODE Start SPI
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);
-  spi_transfer_byte(MODE_CONT);  	// Write to MODE
-  SET_BIT(PORTD,SPI_AD_CS);	// Set CS high
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  			// Set CS low
-  spi_transfer_byte(FILTER_RD); // Next Operation is write to IOCON
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-  CLR_BIT(PORTD,SPI_AD_CS);  			// Set CS low
-  spi_transfer_byte(0); // Next Operation is write to IOCON
-  SET_BIT(PORTD,SPI_AD_CS);
-
-_delay_us(50);
-
-
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(MODE_WR);     	// Next Operation is write to MODE
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(MODE_CONT);  	// Set mode to: continuous sampling.
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+// these 
+  CLR_BIT(PORTD,SPI_AD_CS);
+  spi_transfer_byte(FILTER_RD);	 	// Next Operation is read from Filter register... 
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
+
+  CLR_BIT(PORTD,SPI_AD_CS);			// the reading takes place here
+  spi_transfer_byte(0);
+  SET_BIT(PORTD,SPI_AD_CS);
+
+#ifdef AD7719_COM_DELAY_NEEDED
+_delay_us(50);
+#endif
 } 
           
 void startconv(U08 continuous)
 {
+	// setup the SPI interface according to AD7710 specs.
+	// This is needed, because W5100 has different SPI specs.
+	spi_setup_ad7719();	
+
 	CLR_BIT(PORTD,SPI_AD_CS);       // Set CS low
 	spi_transfer_byte(MODE_WR);        // Next Operation is write to Mode Register
@@ -128,4 +162,8 @@
 void stopconv(void)
 {
+	// setup the SPI interface according to AD7710 specs.
+	// This is needed, because W5100 has different SPI specs.
+	spi_setup_ad7719();	
+
 	CLR_BIT(PORTD,SPI_AD_CS);       // Set CS low
 	spi_transfer_byte(MODE_WR);        // Next Operation is write to Mode Register
@@ -138,9 +176,16 @@
 
 U32 read_adc(void)
-{ 
+{
+	// setup the SPI interface according to AD7710 specs.
+	// This is needed, because W5100 has different SPI specs.
+	spi_setup_ad7719();	
+ 
 	CLR_BIT(PORTD,SPI_AD_CS);       // Set CS low
 	spi_transfer_byte(AD0DAT_RD);   // Next Operation is read from Main ADC Data Register
     SET_BIT(PORTD,SPI_AD_CS);
+
+	#ifdef AD7719_COM_DELAY_NEEDED
 	_delay_us(50);
+	#endif
 
     CLR_BIT(PORTD,SPI_AD_CS);
Index: firmware/FSC/src/ad7719_adc.h
===================================================================
--- firmware/FSC/src/ad7719_adc.h	(revision 10677)
+++ firmware/FSC/src/ad7719_adc.h	(revision 10697)
@@ -7,4 +7,18 @@
 #include "num_conversion.h"
 //-----------------------------------------------------------------------------
+// SPI INTERFACE of AD7719
+// SCLK:
+// SCLK HIGH & LOW cycle min 100ns --> 5MHz maximum SCLK frequency
+// FSC runs at 8MHz CPU clock ... so 4MHz SPI clock is the theoretocal maximum anyway.
+// SCLK should idle high --> mode 3
+// 
+// CS falling edge & SCLK falling edge, may be at the same time ... 
+// 
+
+// There is a delay in all communications between AD7719 and ATmega.
+// I guess this is not needed at all.
+// This switch is able to get them in again
+#define AD7719_COM_DELAY_NEEDED
+
 // Bit Definitions
 #define ADC_RDY PD6
@@ -71,5 +85,5 @@
 
 #define AD0CON_INIT 0x8E // 1000.1110
-	// AD0EN is set
+	// AD0EN is set	--> main ADC is swtiched on
 	// WL is cleared --> 24bit
 	// CH = 00 --> AIN1 , AIN2 used 
Index: firmware/FSC/src/application.c
===================================================================
--- firmware/FSC/src/application.c	(revision 10677)
+++ firmware/FSC/src/application.c	(revision 10697)
@@ -5,4 +5,42 @@
 #include <avr/wdt.h> 
 
+// in order to implement the "registers" I work with a quite long 
+//  char-array like this:
+
+U08 FSCregister[FSC_REGISTER_LENGTH];
+// but this register is not only accessible by
+// FSCregister[i], but as well by special pointers like this:
+U32 *status 							= (U32*)&FSCregister[0];
+U32 *time_sec 							= (U32*)&(FSCregister[4]);
+U16 *time_ms 							= (U16*)&(FSCregister[6]);
+U16 *FR_period 							= (U16*)&(FSCregister[8]);
+U16 *ref_resistor 						= (U16*)&(FSCregister[10]);
+
+
+U32 *ad7719_values 						= (U32*)&FSCregister[68];
+U08 *ad7719_enables 					= &FSCregister[32];
+U08 *ad7719_channels_ready 				= &FSCregister[50];
+U08 *ad7719_readings_since_last_muxing 	= &FSCregister[14];
+U08 *ad7719_current_channel 			= &FSCregister[15];
+U32 *ad7719_current_reading 			= (U32*)&FSCregister[16];
+
+U16 *adc_values 						= (U16*) &FSCregister[324];
+U08 *adc_enables 						= &FSCregister[40];
+U08 *adc_channels_ready 				= &FSCregister[58];
+U08 *adc_readings_since_last_muxing 	= &FSCregister[20];
+U08 *adc_current_channel 				= &FSCregister[21];
+U16 *adc_current_reading 				= (U16*) &FSCregister[22];
+
+	
+
+// using these pointers one can manipulate measurement values like this:
+// res_value[3] = 453212;
+// and then readout the most significant byte of this same value by accessing:
+// FSCregister[92]; 
+// I like this very much for asking the boards status ... this is just a copy of the registers,
+// into the W5100 TX FIFO.
+// submitting the measurement values is just a partial copy... 
+
+//-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
Index: firmware/FSC/src/application.h
===================================================================
--- firmware/FSC/src/application.h	(revision 10677)
+++ firmware/FSC/src/application.h	(revision 10697)
@@ -5,5 +5,38 @@
 #include "typedefs.h"
 //-----------------------------------------------------------------------------
+// in order to implement the "registers" I work with a quite long 
+//  char-array like this:
+# define FSC_REGISTER_LENGTH 500
+extern U08 FSCregister[FSC_REGISTER_LENGTH];
+// but this register is not only accessible by
+// FSCregister[i], but as well by special pointers like this:
+extern U32 *status 							;
+extern U32 *time_sec 							;
+extern U16 *time_ms 							;
+extern U16 *FR_period 							;
+extern U16 *ref_resistor 						;
 
+extern U32 *ad7719_values 						;
+#define AD7719_VALUES_LEN_BYTE 512
+extern U08 *ad7719_enables 					;
+extern U08 *ad7719_channels_ready 				;
+extern U08 *ad7719_readings_since_last_muxing 	;
+extern U08 *ad7719_current_channel 			;
+extern U32 *ad7719_current_reading 			;
+
+extern U16 *adc_values 						;
+#define ADC_VALUES_LEN_BYTE 152
+extern U08 *adc_enables 						;
+extern U08 *adc_channels_ready 				;
+extern U08 *adc_readings_since_last_muxing 	;
+extern U08 *adc_current_channel 				;
+extern U16 *adc_current_reading 				;
+// using these pointers one can manipulate measurement values like this:
+// res_value[3] = 453212;
+// and then readout the most significant byte of this same value by accessing:
+// FSCregister[92]; 
+// I like this very much for asking the boards status ... this is just a copy of the registers,
+// into the W5100 TX FIFO.
+// submitting the measurement values is just a partial copy... 
 
 //-----------------------------------------------------------------------------
@@ -52,10 +85,4 @@
 
 // AD7719 global variables
-	extern U32 ad7719_values[];
-	extern U08 ad7719_enables[];
-	extern U08 ad7719_channels_ready[];
-	extern U08 ad7719_readings_since_last_muxing;
-	extern U08 ad7719_current_channel;
-	extern U32 ad7719_current_reading;
 	extern bool ad7719_measured_all;
 	extern bool ad7719_values_printed;
@@ -63,10 +90,5 @@
 
 // ATMEGA ADC global variables
-	extern U32 adc_values[]; // stores measured voltage in steps of 16mV
-	extern U08 adc_enables[];
-	extern U08 adc_channels_ready[];
-	extern U08 adc_readings_since_last_muxing;
-	extern U08 adc_current_channel;
-	extern U16 adc_current_reading;
+	#define adc_readings_until_mean 250
 	extern bool adc_measured_all;
 	extern bool adc_values_printed;
Index: firmware/FSC/src/macros.h
===================================================================
--- firmware/FSC/src/macros.h	(revision 10677)
+++ firmware/FSC/src/macros.h	(revision 10697)
@@ -13,4 +13,5 @@
 #define HI(x) ((x) >> 8) // Highbyte of 16-bit value
 
+
 #define ABS(x) ((x >= 0) ? x : -x) // Absolute value of x
 
Index: firmware/FSC/src/output.c
===================================================================
--- firmware/FSC/src/output.c	(revision 10677)
+++ firmware/FSC/src/output.c	(revision 10697)
@@ -3,4 +3,5 @@
 #include "application.h"
 #include "timer.h"
+#include "w5100_spi_interface.h"
 
 void print_status() {
@@ -46,9 +47,9 @@
 
 	usart_write_str((pU08)"adc current channel:");
-	usart_write_U08(adc_current_channel,2);
+	usart_write_U08(*adc_current_channel,2);
 	usart_write_char('\n');
 
 	usart_write_str((pU08)"ad7719 current channel:");
-	usart_write_U08(ad7719_current_channel,2);
+	usart_write_U08(*ad7719_current_channel,2);
 	usart_write_char('\n');
 
@@ -174,2 +175,9 @@
 	print_ad7719_nicely();
 }
+
+
+void telegram_start(){
+	eth_write_buffer[0]='@';
+	eth_write_buffer[1]='@';
+	w5100_set_TX(eth_write_buffer, 2); 
+}
Index: firmware/FSC/src/output.h
===================================================================
--- firmware/FSC/src/output.h	(revision 10677)
+++ firmware/FSC/src/output.h	(revision 10697)
@@ -11,3 +11,6 @@
 void print_status() ;
 
+
+void telegram_start();
+
 #endif
Index: firmware/FSC/src/parser.c
===================================================================
--- firmware/FSC/src/parser.c	(revision 10677)
+++ firmware/FSC/src/parser.c	(revision 10697)
@@ -3,4 +3,5 @@
 #include "application.h"
 #include "usart.h"
+#include "w5100_spi_interface.h"
 // this method parses the data, 
 // which came in via USART
@@ -306,2 +307,82 @@
 
 */
+
+///////////////////////////////////////////////////////////////////////////////////////
+// W5300 incoming commands parser
+void parse_w5300_incoming( U08 bytes_in_w5100_rx_buffer ) {
+
+	if (bytes_in_w5100_rx_buffer == 0) // it was stupid to call this parser without having any bytes downloaded
+		return;
+		
+	switch (eth_read_buffer[0]) {
+		case 'w': // *w*rite to register command
+			write_FSC_register();
+			read_FSC_register(); 
+			break;
+			
+		case 'r':	// *r*ead from register command
+			read_FSC_register();
+			break;
+			
+		case 't':	// measure *t*emperature (resistance) channels only
+			reset_resistance_done();
+			simple_acknowledge();
+			break;
+			
+		case 'v':	// measure *v*oltage channels only
+			reset_voltage_done();
+			simple_acknowledge();
+			break;
+			
+		case 'm':	// *m*easure active channels commands
+			reset_done();
+			simple_acknowledge();
+			break;
+			
+		case 's':	// return *s*tatus information
+			// this might take a lot of time... about... 25us per byte .. --> less than 25ms
+			w5100_set_TX(FSCregister, FSC_REGISTER_LENGTH);
+			break;
+			
+		case 'z':	// re*z*et ATmega32 and peripherals
+			eth_write_buffer[0]='!';
+			eth_write_buffer[1]='!';
+			w5100_set_TX(eth_write_buffer, 2); 
+			// let watchdog occur!
+			// gotta read, how this works...
+			break;	
+	}
+}
+
+void write_FSC_register() {
+	FSCregister[eth_read_buffer[2]]=eth_read_buffer[3];
+}
+
+void read_FSC_register() {
+	eth_write_buffer[0]=eth_read_buffer[0];
+	eth_write_buffer[1]=eth_read_buffer[1];
+	eth_write_buffer[2]=eth_read_buffer[2];
+	eth_write_buffer[3]=FSCregister[eth_read_buffer[2]];
+	w5100_set_TX(eth_write_buffer, 4); 
+}
+
+void reset_resistance_done(){
+	for (U08 i=0; i < (RESISTANCE_CHANNELS/8); i++){
+		ad7719_channels_ready[i] = 0;
+	}
+}
+void reset_voltage_done(){
+	for (U08 i=0; i < (VOLTAGE_CHANNELS/8); i++){
+		adc_channels_ready[i] = 0;
+	}
+}
+void reset_done(){
+	reset_resistance_done();
+	reset_voltage_done();
+}
+
+void simple_acknowledge(){
+	eth_write_buffer[0]=eth_read_buffer[0];
+	eth_write_buffer[1]=eth_read_buffer[1];
+	w5100_set_TX(eth_write_buffer, 2); 
+}
Index: firmware/FSC/src/parser.h
===================================================================
--- firmware/FSC/src/parser.h	(revision 10677)
+++ firmware/FSC/src/parser.h	(revision 10697)
@@ -2,10 +2,20 @@
 #define __PARSER_H
 
+#include "typedefs.h"
 void parse_ascii(); 
 void MSR_parser() ;
 
 // all allowed non readable commands are listed here
+// this is not used at all right?
 #define SET_ENABLES 0x01 // sets all enables -- needs 8 + 11 bytes of data
 #define SW_TO_HUMAN 0xFF // SWITCH_TO_HUMAN_READABLE_INTERFACE
 
+void parse_w5300_incoming( U08 bytes_in_w5100_rx_buffer );
+void write_FSC_register();
+void read_FSC_register();
+void reset_resistance_done();
+void reset_voltage_done();
+void reset_done();
+void simple_acknowledge();
+
 #endif
Index: firmware/FSC/src/spi_master.c
===================================================================
--- firmware/FSC/src/spi_master.c	(revision 10677)
+++ firmware/FSC/src/spi_master.c	(revision 10697)
@@ -15,4 +15,23 @@
 //-----------------------------------------------------------------------------
 
+void spi_setup_w5100() {
+	spi_clock_index = 4;   		// 1Mbps
+	// this is reasonable for W5100 because of slow level shifters on the FSC.
+	// in case the slow level shifters, are improved. this value may go up to 6!
+
+	spi_dord = 0;					// Data Order MSB first dord = 0  --> good for all devices
+	spi_cpol = 0;	spi_cpha = 0;	// SPI mode=0 good for ethernet.
+	spi_setup(); 					// Setup SPI bits and clock speed
+}
+
+void spi_setup_ad7719() {				
+	spi_clock_index = 6;   			// since AD7719 is not connected via level shifters .. we can go up to 4Mbps
+	
+	spi_dord = 0;					// Data Order MSB first dord = 0  --> good for all devices
+	spi_cpol = 1;	spi_cpha = 1;	// SPI mode=3 good for AD7719.
+	spi_setup(); 					// Setup SPI bits and clock speed
+}
+
+
 
 
@@ -23,5 +42,5 @@
 	// 1.) Ethernet Modul WIZ812MJ 
 	// 2.) AD7719 24bit ADC
-	// 3.) LIS3LV accelerometer
+	// 3.) LIS3LV accelerometer <---- not used yet.
 	// 4.) MAX6662 temp sensor <---- not assembled!
 
@@ -241,10 +260,9 @@
 
   // Wait for transfer completed
-  PORTB |= 1<<PB3;
+  
   while (!(SPSR & (1 << SPIF)))
   {
-  PORTB ^= 1<<PB3;
-  }
-  PORTB &= ~(1<<PB3);
+  }
+  
 
   // Return result of transfer
Index: firmware/FSC/src/spi_master.h
===================================================================
--- firmware/FSC/src/spi_master.h	(revision 10677)
+++ firmware/FSC/src/spi_master.h	(revision 10697)
@@ -33,4 +33,6 @@
 void spi_set_cpha(U08 cpha);
 void spi_setup(void);
+void spi_setup_ad7719();
+void spi_setup_w5100();
 void spi_transfer_string(U08 length, U08* addr, U08 device);
 //-----------------------------------------------------------------------------
Index: firmware/FSC/src/w5100_spi_interface.c
===================================================================
--- firmware/FSC/src/w5100_spi_interface.c	(revision 10677)
+++ firmware/FSC/src/w5100_spi_interface.c	(revision 10697)
@@ -59,4 +59,8 @@
 void w5100_write( U16 addr, U08 data)
 {
+	// setup the SPI interface according to W5100 specs.
+	// This is needed, because AD7719 has different SPI specs.
+	spi_setup_w5100();	
+
 spi_write_buffer[0]=0xF0;
 spi_write_buffer[1]=(U08)(addr>>8);
@@ -70,4 +74,8 @@
 U08 w5100_read( U16 addr)
 {
+	// setup the SPI interface according to W5100 specs.
+	// This is needed, because AD7719 has different SPI specs.
+	spi_setup_w5100();	
+
 spi_write_buffer[0]=0x0F;
 spi_write_buffer[1]=(U08)(addr>>8);
@@ -244,12 +252,4 @@
 	U16 offset = last_RX_read_pointer & S0_RX_MASK;
 	U16 start_address =  S0_RX_BASE + offset;
-	
-	usart_write_str("last_read_pointer:");
-	usart_write_U16_hex(last_RX_read_pointer);
-	usart_write_str("\noffset:");
-	usart_write_U16_hex(offset);
-	usart_write_str("\nstart_address:");
-	usart_write_U16_hex(start_address);
-	usart_write_char('\n');
 
 	if ((offset + NumBytes) > (S0_RX_MASK + 1) )  // if data is turned over in RX-mem
@@ -299,5 +299,5 @@
 
 // returns number of words, transmitted into TX - buffer.
-U08 w5100_set_TX(U08 NumBytes) {
+U16 w5100_set_TX(U08* string, U16 NumBytes) {
 	U16 freesize = get_S0_TX_FSR();
 	if (freesize == 0)
@@ -334,9 +334,9 @@
 		for (U08 i = 0; i < upper_size; ++i)
 		{
-			w5100_write(start_address + i, eth_write_buffer[i]);
+			w5100_write(start_address + i, string[i]);
 		}
 		for (U08 i = 0; i < lower_size; ++i)
 		{
-			w5100_write(S0_RX_BASE + i, eth_write_buffer[upper_size+i]);
+			w5100_write(S0_RX_BASE + i, string[upper_size+i]);
 		}
 	}
@@ -345,5 +345,5 @@
 		for (U08 i = 0; i < NumBytes; ++i)
 		{
-			w5100_write(start_address + i, eth_write_buffer[i]);
+			w5100_write(start_address + i, string[i]);
 		}
 	}
Index: firmware/FSC/src/w5100_spi_interface.h
===================================================================
--- firmware/FSC/src/w5100_spi_interface.h	(revision 10677)
+++ firmware/FSC/src/w5100_spi_interface.h	(revision 10697)
@@ -10,6 +10,6 @@
 
 
-#define ETH_READ_BUFFER_SIZE 32
-#define ETH_WRITE_BUFFER_SIZE 32
+#define ETH_READ_BUFFER_SIZE 4
+#define ETH_WRITE_BUFFER_SIZE 4
 extern volatile U08 eth_read_buffer[ETH_READ_BUFFER_SIZE];
 extern volatile U08 eth_write_buffer[ETH_WRITE_BUFFER_SIZE];
@@ -215,5 +215,5 @@
 U08 w5100_get_RX(U08 NumBytes, BOOL send_ACK);
 void w5100_TX(U08 NumBytes, U08 *str);
-U08 w5100_set_TX(U08 NumBytes);
+U16 w5100_set_TX(U08* string, U16 NumBytes);
 
 extern bool w5100_needs_reset;
Index: firmware/FSC/test_projects/test_ethernet/test_ethernet.aps
===================================================================
--- firmware/FSC/test_projects/test_ethernet/test_ethernet.aps	(revision 10677)
+++ firmware/FSC/test_projects/test_ethernet/test_ethernet.aps	(revision 10697)
@@ -1,1 +1,1 @@
-<AVRStudio><MANAGEMENT><ProjectName>test_ethernet</ProjectName><Created>11-May-2011 09:47:33</Created><LastEdit>11-May-2011 13:10:54</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>11-May-2011 09:47:33</Created><Version>4</Version><Build>4, 18, 0, 670</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\test_ethernet.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>C:\fact.isdc.unige.ch_svn_firmware\FSC\test_projects\test_ethernet\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega32.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\application.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\interpol.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\output.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.c</SOURCEFILE><SOURCEFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\FSC_test.c</SOURCEFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\typedefs.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\application.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\interpol.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\macros.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\output.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.h</HEADERFILE><HEADERFILE>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.h</HEADERFILE><OTHERFILE>default\test_ethernet.lss</OTHERFILE><OTHERFILE>default\test_ethernet.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega32</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>test_ethernet.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\typedefs.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\application.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\interpol.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\macros.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\output.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.h</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\FSC_test_electrical_connection.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\application.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\interpol.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\output.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.c</Name><Name>C:\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.c</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
+<AVRStudio><MANAGEMENT><ProjectName>test_ethernet</ProjectName><Created>11-May-2011 20:01:02</Created><LastEdit>11-May-2011 20:03:45</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>11-May-2011 20:01:02</Created><Version>4</Version><Build>4, 18, 0, 685</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\test_ethernet.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\test_projects\test_ethernet\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega32.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\FSC_test.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\application.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\output.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.c</SOURCEFILE><SOURCEFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.c</SOURCEFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\ad7719_adc.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\application.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\atmega_adc.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\macros.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\muxer_fsc.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\num_conversion.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\output.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\parser.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\spi_master.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\typedefs.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\usart.h</HEADERFILE><HEADERFILE>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\w5100_spi_interface.h</HEADERFILE><OTHERFILE>default\test_ethernet.lss</OTHERFILE><OTHERFILE>default\test_ethernet.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega32</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>test_ethernet.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR-20100110\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/><sort sorted="0" column="0" ordername="0" orderaddress="0" ordergroup="0"/></IOView><Files><File00000><FileId>00000</FileId><FileName>E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\FSC_test.c</FileName><Status>1</Status></File00000></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
Index: firmware/FSC/test_projects/test_ethernet/test_ethernet.aws
===================================================================
--- firmware/FSC/test_projects/test_ethernet/test_ethernet.aws	(revision 10677)
+++ firmware/FSC/test_projects/test_ethernet/test_ethernet.aws	(revision 10697)
@@ -1,1 +1,1 @@
-<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA32"/><Files/></AVRWorkspace>
+<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA32"/><Files><File00000 Name="E:\FACT\fact.isdc.unige.ch_svn_firmware\FSC\src\FSC_test.c" Position="195 82 1327 572" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
