Hallo,
nach dem Vorlageprogramm in Bascom habe ich mal ein C-Programm geschrieben, um einen RC-Kanal einzulesen und je nach Signal einen Pin zu schalten (hier PA2).
Irgendwie tut sich jedoch nichts, vielleicht könnt ihr mal drüberschauen?
Den Timer habe ich mit Prescale 8 gestartet, sodass er im 2ms-Abtastzeitraum von 0-250 laufen sollte, was den 8bit-Bereich ja ziemlich gut ausnutzt.
Code:#include <avr/io.h> #include <avr/interrupt.h> ISR(INT0_vect) { int reading; int rc_value; if(reading == 0) { TCNT0 = 0; reading = 1; } else { rc_value = TCNT0; TCNT0 = 0; reading = 0; if(rc_value > 128) { PORTA = (0<<PA2); } else { PORTA = (1<<PA2); } } } int main(void) { DDRA = 0xFF; PORTA = 0xFF; DDRB = 0x00; int reading = 0; int rc_value = 0; TCCR0B = (1<<CS01); MCUCR = (1<<ISC00); sei(); while(1) { } }
Lesezeichen