Hallo Dieter,

danke für die Seite werde sie mir gleich mal an sehen

Code:
/**************************************
 mains.c
 Autor: Numberfive
 versuchen das ganze mal zu verstehen.
*************************************/

#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>


#define F_CPU           16000000   // 16 MHz
#define UART_BAUD_RATE  19200      // 19200 Baud

#define UART_BAUD_SELECT (F_CPU/(UART_BAUD_RATE*161)-1)

typedef unsigned char BYTE; 
typedef unsigned short WORD;

BYTE GetKeyCode(void); //routine zum lesen der tasten auf dem board
void InitCom(void);
void SendText(void);
void SendBinary(void);

int main (void)
{
	//hauptprg hier geht der controler immer als erstes hin
	InitCom();

	sbi(PORTA,PINA7);
	//pull ub widerstand einschalten warum weiß ich auch noch nicht
	
	//Analogport init
	outp((1<<ADEN) & 7,ADCSR); // teiler auf 7 damit der bei 16 Mhz Tut
	
	BYTE Taste;
	for(;;)
	{
		//endlos schleife für das haupt prg sonst hällt das prg an
		Taste = GetKeyCode();
		if ( Taste != 0)
		{
			switch(Taste)
			{
				case 1:
					SendText();
					break;
				case 2:
					SendBinary();
					break;
			}
		}
			
	}
	
	
}

BYTE GetKeyCode(void)
{
	WORD Result = 0;
	BYTE Taste = 0;
	//Init ADwandler
	ADCSRA = (1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(0<<ADIE)|(7<<ADPS2);
	// wir messen Porta Pin 7
	ADMUX = (1<<PINA7); 
	// was diese zeile bedeutet weiß ich nicht
	sbi(ADCSRA,ADSC);
	// warten bis messung abgesclossen ist und wert gültig
	loop_until_bit_is_set(ADCSRA,ADSC);
	// den wert aus dem register holen
	Result = inw(ADCL);
	// Wiederstands Netzwerk interpretieren
	if (Result < 1010)
	{
		if(Result >= 410 && Result <= 450)
		{
			Taste = 1;
		}
		if(Result >= 340 && Result <= 380)
		{
			Taste = 2;
		}
		if(Result >= 265 && Result <= 305)
		{
			Taste = 3;
		}
		if(Result >= 180 && Result <= 220)
		{
			Taste = 4;
		}
		if(Result >= 100 && Result <= 130)
		{
			Taste = 5;
		}
	 }
	return Taste;
}

void SendText(void)
{

}
void SendBinary(void)
{

}

void InitCom(void)
{
	/* Set baud rate */
	UBRRH = (BYTE) (UART_BAUD_SELECT>>8);
	UBRRL = (BYTE) UART_BAUD_SELECT;
	/* Enable receiver and transmitter */
	UCSRB = (1<<RXEN)|(1<<TXEN);
	/* Set frame format: 8data, 1stop bit */
	UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0);
}
so sieht es jetzt auch weiß du wie man eingänge im aver studio simuliert ?

Gruß und dank für deine mühe