Gast
#502700
Hy, habe das Programm in AVR Studio geschrieben und ist für den Mega8 bestimmt. Auf der Platine habe ich alles nachgemessen und das stimmt soweit. Das Programm soll Bits setzen wenn der ADC1 und der ADC2 unterschiedliche Werte haben. Leider werden die Bits nicht gesetzt. Kann mir vielleicht jemand weiterhelfe? Wäre super. #include <avr/io.h> void reset(); int main (void) { reset(); int adclow; int vertikallinks; int vertikalrechts; while(1) { ADMUX= 1; ADCSRA = (1<<ADSC); //Start der Wandlung while ( ADCSRA & (1<<ADSC) ) // auf Abschluss der Konvertierung warten { } adclow=ADCL; vertikallinks=ADCH; ADMUX=2; ADCSRA = (1<<ADSC); //Start der Wandlung while ( ADCSRA & (1<<ADSC) ) // auf Abschluss der Konvertierung warten { } adclow=ADCL; vertikalrechts=ADCH; int ergebnis=vertikallinks-vertikalrechts; if(-1>ergebnis||1<ergebnis) { if(-1>ergebnis) { PORTB = (1<<PB2) | (0<<PB3); } else { PORTB = (0<<PB2) | (1<<PB3); } } else { PORTB=(0<<PB2)|(0<<PB3); } } main(); return 0; } void reset(){ DDRD= 0xff; DDRB= 0x00; ADMUX= (0<<REFS1)|(1<<REFS0)|(1<<ADLAR); ADCSRA= (1<<ADEN)|(1<<ADPS2)|(ADPS1)|(ADPS0); }