Hi,
danke, du hast Recht. Ich hatte allerdings nur im main den Part mit den Blitzen rausgenommen und durch Blinken ersetzt.
Hier mal der ganze Code komplett:
So wie er da steht, blinkt die LED, unabhängig vom verbundenen Signal-Pin. sei() ist auskommentiert. Sobald ich die Interrupts wieder erlaube, hat der Signalpin auch auf das Blinken Einfluss.Code:#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/wdt.h> /*void blitz() { PORTA = (1<<PA1); _delay_ms(1000); PORTA = (0<<PA1); } void beacon() { PORTA = (1<<PA0); _delay_ms(1000); PORTA = (0<<PA0); } */ ISR(INT0_vect) { static int reading; static int rc_value; if(reading == 0) { TCNT0 = 0; MCUCR = (0<<ISC00) | (1<<ISC01); reading = 1; } else { rc_value = TCNT0; TCNT0 = 0; MCUCR = (1<<ISC00) | (1<<ISC01); reading = 0; } if(rc_value > 150) { PORTA = (1<<PA2); } else { PORTA = (0<<PA2); } } int main(void) { DDRA = 0xFF; PORTA = 0xFF; DDRB = 0x00; TCCR0B = (1<<CS01); MCUCR = (1<<ISC00) | (1<<ISC01); GIMSK = (1<<INT0); //sei(); /* while(1) { blitz(); _delay_ms(150); blitz(); _delay_ms(350); beacon(); _delay_ms(500); } */ while(1) { PORTA = (1<<PA1) | (1<<PA0); _delay_ms(1000); PORTA = (0<<PA1) | (0<<PA0); _delay_ms(1000); } }
Ich brauche die Signalleitung bloß an der Isolation anfassen und es fängt wieder an zu blitzen, mal mehr mal weniger hell bzw kurz und lang. Ziemlich doof...






Zitieren

Lesezeichen