-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Empfängersignal mit ATtiny13A erkennen

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    04.06.2017
    Beiträge
    23
    Anzeige

    HI

    Habe nun alles mit Hilfe eurer Antworten nochmal überarbeitet. Jetzt funktioniert es!
    SUPER! Danke für eure Hilfe

    Gruß
    Lichti01

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    32
    Beiträge
    4.910
    Was war der Fehler?

    MfG Hannes

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    04.06.2017
    Beiträge
    23
    HI

    Ich denke, dass der ausschlaggebende Punkt war, dass ich den Timer nicht gestartet habe.
    Außerdem habe ich den INT0 rausgenommen sowie den Timer auf initial Zustand gelassen.

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    32
    Beiträge
    4.910
    Der Timer war schon gestartet. Den hast du gestartet indem du CS00 und CS01 gesetzt hast. Ich vermute das sich das Programm ins Nirvana verabschiedet hat weil du den Int0 Interrupt konfiguriert hast, aber nicht in die ISR gesprungen bist.

    MfG Hannes

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.082
    Ich mach die Servosignal Auswertung auch gerne mal mit dem INT0.
    Der Trick dabei ist, im Interrupt das Sensing von steigende Flanke auf fallende Flanke um zu konfigurieren.
    Und in einem zweiten Schritt wieder umgekehrt.

    Du initialisierst also erstmal den Interupt 0 auf steigende Flanke und startest dann die Hauptschleife.
    Ein Timer zum messen der Impulslänge muss auch noch gestartet werden, braucht aber prinzipiell keinen Interrupt - Ich nehm da meistens einen 16 Bit Timer mit einem Prescaler von 8.

    Tritt nun der steigende Interrupt auf wird in der Interrupt Routine das TCNT Register des Timers ausgelesen und in einer volatile Variable abgespeichert.
    Jetzt wird dann auch das Sensing auf fallende Flanke umgestellt.

    Kommt nun die fallende Flanke wird der INT0 wieder aufgerufen.
    Es wird wieder der TCNT ausgelesen und der vorher abgespeicherte Wert der Variable abgezogen.
    Das Ergebnis wird nun in einer weiteren volatile Variable abgespeichert und gibt das Maß der Impulslänge an.
    ( Bei 8MHZ und Prescaler 8 in µs, Bei 16MHz µs*2, also halbe µs Schritte ).
    Nun das sensing wieder auf steigende Flanke umstellen für den nächsten Impuls.
    Man kann auch noch eine weitere Variable als FLAG setzen, damit das Hauptprogramm weiß, das ein neuer Impuls eingetroffen ist.
    Man muß lediglich darauf aufpassen, das bei einer maximalen Impulslänge der Timer nicht überläuft - Das kann aber eigentlich nur passieren, wenn man die Pausen auswertet.

    Ich weiß - Das Ganze geht auch mit Pin Change.
    Das INT0 Verfahren funktioniert aber auch mit Controllern die keinen Pin Change Interrupt haben.

    Eine weitere Möglichkeit wäre noch der Input Capture Interrupt eines Timers, wenn man noch zusätzliche Eingänge braucht.

    Das Verfahren ist aber prinzipiell immer gleich, mal die steigende, dann die fallende Flanke des Signals auszuwerten.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. ATTiny13A Schalter abfragen/entprellung mit Variablen
    Von Denn Is im Forum C - Programmierung (GCC u.a.)
    Antworten: 19
    Letzter Beitrag: 01.07.2014, 11:21
  2. Attiny13a RS232
    Von flecralf im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 09.10.2013, 18:27
  3. Empfängersignal auswerten. (Modellbauempfänger PWM )
    Von hunni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 16.10.2008, 00:04
  4. gcc erkennen?
    Von bluebrother im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 09.11.2005, 12:10
  5. Empfängersignal digitalisieren
    Von srem im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 14.02.2005, 20:31

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •