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