So nach dem dem ganzen streß läuft es auch nur fasst, Daten kommen vom dem PC auch an. Da wollte ich mich jetzt an den Internen AD-Wandler heran wagen,
am PC bekomme ich 1023 also 10-bit was ja eigentlich richtig ist.
Nur der wert ändert sich nicht wenn ich nochmal den Befehl schicke zum lesen.
Hier mal der Auszug, weil der Rest läuft ja.
Code:
uint16_t adc_Value = 0;
uchar Buffer[11];

void adc_init(void)
{
//ReferenzSpannung AVcc | Kanal 0 ADC0(PC0)
//ADC enable| Singel Mode| Frequenzvorteiler F_CPU/128
uint16_t result;
ADMUX  = (1<<REFS0);
ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

ADCSRA |= (1<<ADSC);                  
while (ADCSRA & (1<<ADSC) ) {}        
result = ADCW;
}

/*ADC-channel-Funktion*/
uint16_t ADC_Read( uint8_t channel )
{
  ADMUX = (ADMUX & ~(0b00001111)) | (channel & 0b00001111);
  ADCSRA |= (1<<ADSC);            
  while (ADCSRA & (1<<ADSC) ) {}  
  return ADCW;                    
}


case USB_ADC:
		adc_Value = ADC_Read(0);
		itoa(ADCW, Buffer, 10);
		usbMsgPtr = Buffer;
		return sizeof(Buffer);
Danke für die Tipps

MfG exkluski