Hi,
tausend Dank für eure Hilfe bei meinem letzen Problem. Hab jetzt aber schon wieder ein neues. Wollte mal ein kleines Programm schreiben was einfach die FrontLED einschaltet wenn ein Odometriesensor hell bzw. Dunkel wird. Also das man an dem Rad dreht und die FrontLED geht an und aus. Hab jetzt schon stundenlang damit rumgemacht und bekomms einfach nicht hin
Vielleicht weiß ja jemand von euch Rat...
lg KatjaCode:#include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t speicher = 0x0000; void init(void) { DDRD |= (1<<DD7); //PD7 wird Ausgang DDRD |= (1<<DD6); //PD6 wird Ausgang PORTD |= (1<<PD7); //PD7 wird 1 gesetzt -> Odometrie LEDs an ADMUX |= (1<<0) | (1<<REFS0); //ADC0 als eingang, Kondensator an AREF benutzen //ADMUX |= (1<<ADLAR); ADCSRA |= (1<<ADEN); //ADC enablen ADCSRA |= (1<<2) | (1<<1) | (1<<0); //Presacler auf 128 einstellen } int main(void) { init(); while(1){ ADCSRA |= (1<<ADSC); //Messung starten while (! (ADCSRA & (1<<ADIF))) //Warten bis Messung fertig ist speicher = ADCL + (ADCH<<8); //Messwert in Speicher schreiben if (speicher < 600) { PORTD |= (1<<PD6); //PD6 auf 1 setzen -> FrontLED an ADCSRA |= (1 << ADIF); } else { PORTD &= ~(1<<PD6); //PD6 auf 0 setzen -> FrontLED aus ADCSRA |= (1 << ADIF); } speicher = 0x0000; //Speicher löschen } return 0; }







Zitieren
Lesezeichen