so nun habe ich den code mit verschiedenen Empfängern erfolglos getestet. 
Was ist falsch?
Code:
#define F_CPU 1200000UL //Taktfrequenz CPU 1,2MHz
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdio.h>
//LED-Ports
#define LED1 1
#define LED2 2
#define LED3 3
#define LED4 4
uint16_t C; //Integer einfügen und Variable für Zählerstand festlegen
int main(void)
{
DDRB = 0b00011110; //Eingänge und Ausgänge definieren
PORTB = 0b00000000; //Pullups setzen
//Einstellungen für PCINT
MCUCR = (1<<ISC00); //Jede logische Änderung an INT0 erzeugt eine Interrupt-Anforderung
GIMSK = (1<<PCIE); //PCINT aktivieren
PCMSK = (1<<PCINT0); //PCINT0 Eingang wird genutzt
//Einstellungen Timer / PWM
TCCR0A = ((1<<WGM00) | (1<<WGM01)); //FastPWM (Top=0xFF Update of OCRx at = TOP TOV Flag Set on = MAX)
TCCR0B = (1<<CS01); //Prescaler clk/8
sei(); //globale Interrupts aktivieren
while(1)
{
if (C < 80)
{
PORTB &= ~((1<<LED1) | (1<<LED2) | (1<<LED3) | (1<<LED4));
sei();
}
else if((C > 80) & (C < 190))
{
PORTB &= ~((1<<LED2) | (1<<LED4));
PORTB |= (1<<LED1);
PORTB &= ~(1<<LED3);
_delay_ms(500);
PORTB |= (1<<LED3);
PORTB &= ~(1<<LED1);
sei();
_delay_ms(500);
}
else if (C > 190)
{
PORTB |= ((1<<LED2) | (1<<LED4));
PORTB |= (1<<LED1);
PORTB &= ~(1<<LED3);
_delay_ms(500);
PORTB |= (1<<LED3);
PORTB &= ~(1<<LED1);
sei();
_delay_ms(500);
}
}
}
ISR(PCINT0_vect)
{
if(PINB & (1<<PB0)) //erkennung steigender Flanke
{
TCNT0 = 0;
}
else //ansonsten
{
C = TCNT0; //Zählerstand auslesen und in variable schreiben
cli();
}
}
Habe schon mit den Einstellungen am Sender gespielt hab verschiedene Prescaler / Integer ausprobiert. Was kann ich noch machen?
Gruß
Lichti01
Lesezeichen