Gast
#3125653
Hallo, ich versuche gerade den in folgendem Paper genannten Aufbau zu implementieren: http://www.merl.com/publications/docs/TR2003-35.pdf Dabei geht es darum eine bidrektionale kommunikation mittels LEDs aufzubauen. Soweit so gut, ich möchte erstmal eine LED als Empfänger betreiben. Hier sieht man noch einmal wie das ganze funktioniert: http://people.duke.edu/~sd78/projectHub/projects/optoelectronics/principle_clip_image002.jpg Ich verstehe was dabei passiert nun habe ich folgenden code dazu geschrieben: Ein Timer ISR wird alle 100µs ausgelöst und soll dann die genannte "Entladungsmessung" durchführen, in diesem Beispiel wird ein Zähler solange erhöht bis die Entladung fertig ist. ISR(TIMER0_COMPA_vect) { DDRC |= (1<<(PC1)); PORTC |= (1<<(PC1)); PORTC &= ~(1<<(PC0)); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); DDRC &= ~(1<<(PC0)); if((PORTC&(1<<PC0))) count++; } Die LED hängt mit der Kathode über einen Widerstand an PC0, Anode an PC1. Das Problem ist nun, der Zähler läuft einfach hoch ohne dass sich irgendetwas verändert hat. Wenn ich messe liegen an PC0 auch einfach noch 5V an nachdem die Pinrichtung umgedreht wurde. Vielleicht hat jemand eine Idee was ich falsch mache.