so, nach längerer abstinenz in diesem thread mache ich mich meinen rp6 nun mit einem ir kollissionssensor ausgestattet.

siehe hier:

Bild hier  

empfänger und sender sind die selben wie bei der RP6 Base.

die 36 KHz möchte ich über den freien Timer 1 auf der M32 mittels CTC modus erzeugen.

dazu hab ich die controllib.c folgendermaßen abgeändert:

Code:

	 TCCR1B =  (0 << ICNC1)
         | (0 << ICES1)
         | (0 << WGM13)
         | (1 << WGM12)
         | (0 << CS12)
         | (0 << CS11)
         | (1 << CS10);

	 OCR1A = 221; 
	


	// Timer 2 - used for beeper:
	TCCR2 =  0; 
	OCR2  = 0xFF; 

	// Enable timer interrupts:
	
	TIMSK =   (1 << OCIE0)|(1<<OCIE1A);
	sei();
mein programmcode dazu sieht bisher so aus:

Code:
#include "RP6ControlLib.h"

uint8_t a;

ISR(TIMER1_COMPA_vect) 
	{
	PORTD ^= PD5;
writeString_P("\Interrupt Timer1 Compare");


}






void infrarotempfang(void)
{if (PINC & PC3)
{
a++;}

if (a >100)
	{writeString_P("\Infrarot empfangen");
	startStopwatch1();}
	
if (getStopwatch1() >1000)
	{setStopwatch1(0);}
}

int main(void)
{initRP6Control();

DDRD |= PD5;	//PD5 als Ausgang

DDRC &=~ PC3;  	//PC3 als Eingang

while(true)
{

infrarotempfang();
}
return 0;
}
obwohl ich mittlerweile das datenblatt der M32 genau seziert habe, löst mein timer 1 immer noch keinen interrupt aus. die einstellungen hab ich genauestens überprüft.
kann es sein, dass der interrupt irgendwo an anderer stelle in der controllib blockiert wird?

gruß