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...
Code:
#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;
}
lg Katja
Lesezeichen