Ich verstehe das echt nicht.
Meine Interrupt-Routine sieht so aus:
Code:
ISR(ADC_vect)
{
conv=1;
}
Conv ist global deklariert:
Code:
volatile uint8_t count=0, conv=0;
und meine Helligkeitsmessung sieht jetzt so aus:
Code:
//---------------------------------Helligkeitsmessung---------------------------------
void helligkeitsmessung(void)
{
uint16_t LDR;
ADCSRA |= (1<<ADSC);
//while (ADCSRA & (1<<ADSC))
//{
//;
//}
if (conv >= 1)
{
LDR = ADC;
conv=0;
}
if (LDR<=150)
{
PORTD |= (1<<Scheinwerfer);
PORTD |= (1<<Rueckleuchten);
}
if (LDR>=190)
{
PORTD &= ~(1<<Scheinwerfer);
PORTD &= ~(1<<Rueckleuchten);
}
}
das licht bleibt jetzt dauerhaft an
viel euch das alles beim ersten Roboter auch alles so schwer?
MfG Jan
Lesezeichen