Hallo Herkulase,
danke für Deine Antwort.
Ups, Du hast Recht, ich muss auf 1 abfragen. Ich habs jetzt mal umgeschrieben. Es ist bestimmt besser durchschaubar, wenn man die Bit-Namen verwendet.
Leider ändert das nichts am Ergebnis. Ich bekomme immer noch 0x01D2. Da ich's im Emulator laufen habe sehe ich , das die Wandlung ausgeführt wurde ADIF ist gesetzt und der ADC-Wert ändert sich.Code:void AdcInit(void) { ADMUX=0; ADMUX|=0x00; // VREF=AREF Pin ADMUX|=0x01; // Kanal AIN1 ADCSRA=0; ADCSRA|=(1<<ADPS2); // Prescaler clk/16REFS 6 92 ADCSRB=0; ADCSRA|=(1<<ADEN); // Enable } void AdcStart(void) { ADCSRA|=(1<<ADSC); // Start } u8 AdcReady(void) { if( (ADCSRA&(1<<ADSC))==(1<<ADSC) ) { return(1); } else { return(0); } } s16 main(void) { AdcInit(); while( 1 ) { AdcStart(); while( AdcReady()==1 ) { ; } } }
Kann es sein, dass mit meinem Hardware-Aufbau was nicht stimmt? Oder ist am Ende mien Controller defekt?
Drew







Zitieren

Lesezeichen