so, jetzt habe ich mich nochmal über die infrarotsensorik schlau gemacht. aber ich scheiter immer noch an einem grundlegenden problem. und zwar erkennt die M32 irgendwie nicht meinen port PC3 als eingang.
das dürfte auch das problem sein, warum sie keinen infrarotempfang meldet.
ich komm mir richtig blöd vor das zu fragen, weil ich nicht das erste mal einen port als eingang verwende. aber ich habe gerade +5Volt auf meinen eingang PC3 gebrückt und dieser aber scheinbar nichts registriert.
scheinbar steh ich gerade extrem auf der leitung. hier das programm:
Code:
#include "RP6ControlLib.h"
uint8_t a;
uint8_t interruptcounter;
ISR(TIMER1_COMPA_vect)
{interruptcounter++;
if(interruptcounter <21)
{PORTD ^= (1<<PD5);
writeString_P("Interrupt Timer1 Compare\n");}
if(interruptcounter > 20 && interruptcounter <41)
{writeString_P("Interrupt Pause\n");}
if(interruptcounter == 41)
{interruptcounter =0;}
}
void infrarotempfang(void)
{if (PINC & (1<<3))
{writeString_P("eingang PC3 high\n");
a++;
}
if (a >100)
{writeString_P("Infrarot empfangen\n");
startStopwatch1();}
if (getStopwatch1() >1000)
{setStopwatch1(0);}
}
int main(void)
{initRP6Control();
DDRD |= (1<<PD5); //PD5 als Ausgang
DDRC &=~ (1<<3); //PC3 als Eingang
while(true)
{
infrarotempfang();
}
return 0;
}
was ist hier falsch? ich glaub ich versteh die welt nicht mehr....
mfg andi
Lesezeichen