IR-Decoder - universell

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Kurzes Update: Die Umstellung auf POLLING ist aufwändiger als gedacht. Einen Teil der State Machine läuft nun in der ISR, die bei 8MHz max. 7 Mikrosekunden braucht. Mit 15kHz Abfragefrequenz ist das Ergebnis eher mager...
      Jetzt optimiere ich nochmal die Protokollerkennung...
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Endlich mal fertig geworden, so dass die Pollingvariante jetzt auch läuft. Das „magere“ Ergebnis im ersten Wurf hatten einen simplen Grund: Die Auswertung hat bei 8MHz zu lange gedauert, so dass die Messungen bei schlechtem Empfang eher selten gültig waren. Ein weiterer Grund war die (zu langsame) Protokollerkennung. Bisher hatte ich immer nur pro Synchron-/Daten-Bitphase die Protokolltabelle durchsucht. Wenn aber Protokolle fast gleiches Timing verwenden (z.B. die Pulslänge gleich und nur die Pulspause verschieden ist), dann muss die Tabelle weiter durchsucht werden - und bei Phasenzeiten um 150 Mikrosekunden reicht das oft nicht.
      Das ist auch ein Grund, warum z.B. in der IRMP-Implementierung im Mikrocontrollerforum die Vergleiche nicht aus Tabellen geholt werden, sondern als Konstanten pro Protokoll direkt im Quellcode stehen... Braucht halt mehr Flash.
      Den Code lade ich morgen hoch, den Rest für den RGBW-Dimmer kommende Woche.

      Ach ja, das Übertakten des verwendeten ATTiny44 ging bis 36MHz ohne Probleme über Stunden, inklusive serieller Ausgabe, ADC und beiden Timern. (bei 5V mit einem Quarzoszillator)
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • Hier die letzten Versionen, einmal für einen ATTiny85 (wird mit dem internen Oszillator mit 16MHz PLL betrieben) und dann für einen ATTiny44 (wahlweise mit Quarz oder externem Oszillator ab 16MHz).

      Die INC-Datei(en) enthalten die Tabellen für das Timing der Protokolle. Diese habe ich für die Polling-Variante auf 1 Tick = 64 Mikrosekunden berechnet (per Excel-Sheet, geht schnell und kann man direkt ins BASCOM kopieren)

      Was fehlt:
      - immer noch die Manchesterdekodierung
      - Ausgabe der empfangenen Bits als DWORD/LONG o.ä.
      - Aufräumen/Refactoring
      Files
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.