Ich möchte zu einem den Analog Comperator benutzen um bei fallender Flanke eine LED zum leuchten zu bringen und zum anderen später per ADC eine Spannung messen. Ist es zu einem möglich dies irgendwie parallel laufen zu lassen oder geht es wirklich nur eins vom beiden? ADC funktioniert super, nur der Comperator noch nicht: #ifndef F_CPU # define F_CPU 8000000 /* 8 MHz */ #endif #include <avr/io.h> // Registernamen #include <stdlib.h> #include <util/delay.h> #include <inttypes.h> #include <avr/wdt.h> #include <avr/interrupt.h> volatile uint16_t AC0 = 0; void AC_Init(void) { ACSR &= ~(1<<ACD); //AnalogComparator ein ADCSRA &= ~((1<<ADEN)); // ADC aus ACSR = (1<<ACIS1)|(1<<ACIE); //fallende Flanke DDRB = 0xFF; // Alle Pins von Ports B als Ausgang DDRB &= ~((1 << DDB2) | (1 << DDB3));// b2,b3 eingänge PORTB |= 0xFF; PORTB &= ~ ((1 << PB0) | (1 << PB2) | (1 << PB3)); } ISR( ANA_COMP_vect ) //ANALOG COMPARTOR Interrupt Routine { //acflag=1; // AINO const: Interrupt wenn AIN1 < AIN0: Kein Licht PORTB = (1 << PB0); // LED ein } int main(void) { AC_Init(); sei(); while(1){} } Ist die simple Software so richtig? Wenn AIN0>AIN1 ist müsste LED angehen, macht es aber nicht. PB0 ist weiterhin auf Low -.-.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.