- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 10

Thema: RC Empfänger an ATMega16

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von Jeti Beitrag anzeigen
    Code:
    // Timer/Counter1 Start und Ende
    ISR (TIMER1_CAPT_vect)
    {
        if (posneg<1)
        { 
            counter=0;                                //counter zurücksetzen
            TCCR1B&=~ (1<<ICES1);                    //auf fallende Flanke triggern
            posneg=1;
        } 
        else
        {
            cli();
            Zeit=counter;                        // Zeit im µs berechnen
            TCCR1B|= (1<<ICES1);                    //auf steigende Flanke triggern
            ausgabe ();                                // Ausgabe auf Display
            posneg=0;
            sei();
        }
    }
    Noch 'ne Idee. Wenn die Ausgabe läuft, dauert das ziemlich lange. Die Impulse mit steigenden und fallenden Flanken treffen trotzdem noch am PD6 ein und das ICP Interruptflag wird gesetzt. Sobald das sei() kommt, wird deshalb sofort die ISR erneut aufgerufen von einer lange vorher aufgetretenen Flanke und verfälscht das Ergebnis?
    Vor sei() würd ich durch eine Eins Schreiben des ICF1 Bits im TIFR Register das Interruptflag sicherheitshalber löschen.

    Welche Länge können denn die Impulse haben, die vom RC-Empfänger kommen?

    Wenn Du nicht weis ob es ein Open Collector Ausgang ist, schadet es nichts, trotzdem den internen Pullup einzuschalten.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.06.2005
    Ort
    Gäufelden
    Alter
    39
    Beiträge
    111
    Danke Searcher!

    Das war die Lösung. Seit dem setzen des ICF1 Bits im TIFR Register funktioniert alles einwandfrei.

    Super!

    Gruß
    Jeti

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    .........Bild hier  

    Zitat Zitat von wkrug
    Wenn die dann kommt wird das ICP Timer register ausgelesen und das Sensing auf fallende Flanke umgestellt.
    Tritt die dann auf wird das ICP Register wiederum ausgelesen un der vorherige Wert abgezogen.
    Zitat Zitat von Jeti
    Danke für die Antwort, aber ich glaube das (oder so etwas ähnliches) versuche ich doch gerade oder?
    Hallo Jeti,
    in Deinem Programm nutzt Du nur den Interrupt, den die Interrupt Capture Funktion zur Verfügung stellt. Das Gleiche könntest Du auch mit den INt0, INT1 oder INT2 Interrupts erreichen. Die schöne Funktion, die die Input Capture Funktion noch zur Verfügung stellt, ist, daß bei dem Capture event nicht nur das Interrupt Flag gesetzt wird, sondern auch gleichzeitig der Timerstand in das ICR1H/ICR1L Register kopiert wird.

    Wenn der Timer1 nun zB mit 1MHz laufen würde, bei steigender Flanke der Input Capture zuschlägt und man dann ICR1H/ICR1L sichert, auf fallende Flanke umschaltet und beim nächsten Input Capture den gesicherten Wert mit dem neuen aktuellen ICR1H/ICR1L Wert verrechnet, hat man eine Auflösung von 1µs.

    Außerdem sollte man die ISR so kurz wie möglich halten. Die Anzeigefunktion also irgendwie in die main plazieren.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. IR Empfänger
    Von harry3 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 18.02.2008, 12:38
  2. IR- Empfänger
    Von cbr600 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 12.05.2007, 17:07
  3. 2m Empfänger
    Von lars2002 im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 07.06.2006, 08:42
  4. lw-empfänger
    Von anabolik im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 04.10.2005, 21:00
  5. atmega16
    Von ürsu im Forum AVR Hardwarethemen
    Antworten: 16
    Letzter Beitrag: 13.01.2005, 21:05

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress