Zitat Zitat von wkrug Beitrag anzeigen
Ich hab dafür einen INTx verwendet und dann während der Interrupt Routine das Interrupt Sensing von steigende auf fallende Flanke umgestellt und umgekehrt.
Ich war auch mal nahe dran die Input Capture Unit zu verwenden, die man ja auch auf fallende bzw steigende Flanke umschalten kann. Dann war mir aber die Funktion und auch der 16Bit Timer, auf dem sie implementiert ist, zu schade. RC5 braucht ja keine so genaue Zeitmessung.


Zitat Zitat von oberallgeier Beitrag anzeigen
Wenn Du meinst, dass Dir mein Code was nützen könnte (wirklich recht mühevolles C) kann ich den gern posten. Viel Erfolg weiterhin.
Vielen Dank! Ist im Augenblick nicht notwendig. Ich denke, Deinen Algorithmus habe ich verstanden. Hatte schon kurz versucht, mich durch den RC5-Dekodier-C-Code auf RN-Wissen durchzufinden. Aber ehrlich gesagt aufgegeben, da mir das als Nicht-C-ler zu umständlich wurde. Der knappen Beschreibung nach, könnte meines aber so ähnlich arbeiten: Interrupts aber ohne Abfrage des Portpinzustandes.


Bisher habe ich bei meinen kleinen Basteleien noch keinen Heartbeat eingeführt. Wenn mir die Ressourcen mal auf meinen bewußt klein gehaltenen µCs ausgehen, komme ich wahrscheinlich darauf zurück.

Beim Schreiben meines Programm hatte ich schon einiges zu kämpfen, um es so gut und fehlerfrei wie den GETRC5 Befehl in Bascom zu bekommen. Da ich schon etwas vertraut mit AVR Assembler bin, werde ich mal versuchen herauszubekommen, nach welcher Methode dort dekodiert wird. Laut Befehlsbeschreibung kann dort sogar der verwendete Timer0 mit leichten Einschränkungen gleichzeitig auch für andere Zwecke eingesetzt werden.

Gruß
Searcher