Code:
#define GREEN_LED_on PORTA |= (1<<PA3)
#define GREEN_LED_off PORTA &= ~(1<<PA3)
Code:
int main()
{
DDRA &= ~((1<<PA7)); // Pin PA7 auf Eingang setzen, da hängt der Botton dran
ADCSRA = 0x8F; // ADC und Interrupts aktivieren
ADMUX |= ((1<<MUX0)|(1<<MUX1)|(1<<MUX2)); // Auf ADC7 setzen
sei();
ADCSRA |= 1<<ADSC; //starten
while(1){}
}
ISR(ADC_vect){
GREEN_LED_ON(); // Macro, schaltet LED für 1 sek an, dann wieder aus
}
Code:
void GREEN_LED_ON(void)
{
GREEN_LED_on;
_delay_ms(1000);
GREEN_LED_off;
}
Dein Beispiel würde ja einen Interrupt auslösen, wenn der ADC fertig mit der Arbeit ist. Ich bräuchte aber irgendwie eine Möglichkeit, dass der ADC ständig guckt, ob sich was ändert und im Falle einer Änderung einen Interrupt wirft. Also so ne Art externer Interrupt bei Benutzereingabe. Ist sowas möglich? Also gibts es ne Möglichkeit, den ADC dauerhaft laufen zu lassen und nur bei einer Änderung einen Interrupt zu generieren?
ich habe dann mal auf den Tip von weiter oben gehört und mir den Komparator angeguckt. Der sollte ja 2 Eingänge überprüfen können und mir dann sagen, ob sich was geändert hat. Führt man den auch nur einmal aus,sprich gibt es nur eine Überprüfung oder wird der dauerhaft betrieben?
Lesezeichen