- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 4 von 4

Thema: PWM-Signal einer RC-Anlage mit input capture messen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66

    PWM-Signal einer RC-Anlage mit input capture messen

    Hallo,

    ich verwende einen Mega644 und versuche momentan das PWM-Signal einer RC-Anlage zu messen.
    Man sagte mir dass das am Besten mit dem input capture Modus geht.

    Momentan habe ich folgendes zusammengebastelt:

    Code:
    char wert1=0;
      char wert2=0;
      char Ergebnis;
      int run=0;
       
      
    
    void pwm_init()
      {
        TCCR1A = 0;
        TCCR1B = (1<<ICES1)  | (1<<CS10);  // steigende Flanke, kein Prescaler
        TCCR1C = 0;
        TIMSK1 = (1<<ICIE1) ;  // Interrupt akivieren, Capture
      }
       
       
       
      ISR( TIMER1_CAPT_vect )
      {
        if (run==0) 
        {
                      run=1; //als nächstes zweiter Durchlauf
                      wert1=ICR1; //Startwert
                      TCCR1B &= ~ (1<<ICES1); //setzen auf fallende Flanke
        }
        else
        if (run==1) 
        {
                      run=0; //als nächstes erster Durchlauf
                      wert2=ICR1; //Endwert
                      TCCR1B |= (1<<ICES1); //setzen auf steigende Flanke
       
                      //Berechnung
                      Ergebnis=wert2-wert1;
        }
       
      }
    die Variable "Ergebnis" lasse ich mir via RS232 ausgeben. Leider kommt da nur Müll an.
    Das die Variablen wert2, wert1 als char definiert werden, habe ich aus einem Beispiel übernommen, mir ist nicht klar warum.
    Ich hätte integer erwartet.

    Hardwareseitig habe ich zum testen den Empfänger an VCC und GND vom µc angeschlossen und einfach die Signalleitung direkt an den PD6(ICP1) vom µc gesetzt.

    Wer kann mir dazu etwas sagen?

    Gruß




    Tante Edith`s Meinung:
    Das mit dem Char ist Müll, habe es mal als Double angenommen und nun kommen Zahlen, welche sich immerhin passend zum "Gas-geben" am Sender, ändern.
    Das es 5-Stellige Zahlen sind, wird wohl an der Taktfrequenz liegen.
    Ich werde mal testen, die Zahl umzurechen und einen Servo anzuschließen.


    Letzter Stand:
    Wenn ich den Wert durch 16 Teile komme ich in Neutralstellung auf ~1500 µs
    Das passt soweit.
    Allerdings ist der min-Wert 1200 und der max-Wert 1800.
    Der Bereich ist zu klein. Er sollte bei etwa 1000 bis 2000 liegen.
    Hat jemand eine Idee warum mir da was fehlt?
    Geändert von MechMac (07.03.2011 um 22:39 Uhr)

Berechtigungen

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

Solar Speicher und Akkus Tests