-
        

Ergebnis 1 bis 3 von 3

Thema: ATXMEGA16A4 Pulse Width Capture

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544

    ATXMEGA16A4 Pulse Width Capture

    Anzeige

    Hi,

    ich möchte per Input Capture an einem ATXMega16A4 den Duty-Cycle eines PWM-Signals (488Hz) messen. Nur irgendwie ist der Wert des CC Registers immer 0.
    Der Timer wird konfiguriert wie folgt:
    - Normal Mode
    - CCC enabled
    - Prescaler = 1

    Verwendet wird Timer TCD0, das Signal liegt an PD.2 an (also CC C). Interrupts sind alle aktiviert, obwohl das hier sowieso keine Rolle spielen sollte?!
    Die Routine:
    Code:
    void InitPwmInputTimer(void)
    {
        PwmInputPinConfig;
        
        PORTD.PIN2CTRL = PORT_ISC_FALLING_gc;
        EVSYS.CH0MUX = EVSYS_CHMUX_PORTD_PIN2_gc;
        
        PwmInputTimer.CTRLA = 0x01; //Prescaler = 1
        PwmInputTimer.CTRLB = 0x40; //CC C enabled , normal mode
        PwmInputTimer.CTRLD = 0xC8; //Event = pulse width capture , EventSource = EVSYS_CH0
        PwmInputTimer.PER = 0x7FFF;    
    }
    Der Wert wird dann ausgegeben:
    Code:
        while(1)
        {
            ltoa((int32_t)TCD0_CCC,debug1,10);
            SendPCUart(debug1,1);
            WaitMs(500);
        }
    Der Rest des Programms funktioniert einwandfrei, nur eben dieser Teil nicht.
    Hab ich was vergessen? Im DB konnte ich zumindest nichts finden, was mir weiterhelfen würde.

    Vielen Dank & Gruß
    Chris

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    Bei dir:
    PORTD.PIN2CTRL = PORT_ISC_FALLING_gc;
    Laut Datenblatt:
    Pulse Width Capture
    Selecting the pulse width measure event action makes the enabled compare channel perform the input capture action on
    falling edge events and the restart action on rising edge events. The counter will then restart on positive edge events,
    and the input capture will be performed on the negative edge event. The event source must be an I/O pin, and the sense configuration for the pin must be set to generate an event on both edges. Figure 14-13 on page 159 shows and example
    where the pulse width is measured twice for an external signal.
    mfg

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    danke für den Hinweis, habs korrigiert, jedoch besteht der Fehler weiterhin..
    Leider hab ich im Netz bis jetzt nur Leute gefunden, die das gleiche Problem haben, aber noch ohne Lösung.

    Gruß
    Chris

    EDIT:
    Hab gerade den Fehler gefunden.
    DB:
    These bits select the event channel source for the timer/counter. For the selected event channel to have any effect, the
    event action bits (EVACT) must be set according to Table 14-6 on page 166. When the event action is set to a capture
    operation, the selected event channel n will be the event channel source for CC channel A, and event channel (n+1)%8,
    (n+2)%8, and (n+3)%8 will be the event channel source for CC channel B, C, and D.
    Die EVSEL Bits waren falsch gesetzt, weil ich das nicht gelesen hab.
    Geändert von Che Guevara (18.02.2014 um 09:55 Uhr)

Ähnliche Themen

  1. Pulse Height Analyzer
    Von OItheWORLD im Forum Elektronik
    Antworten: 16
    Letzter Beitrag: 27.10.2008, 16:13
  2. R/C Kanal auswerten - Pulse überprüfen
    Von spaceduck im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.06.2008, 14:21
  3. Pulse Zählen
    Von blondie im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 23.07.2006, 17:01
  4. srf04 mit pulse
    Von pebisoft im Forum C - Programmierung (GCC u.a.)
    Antworten: 54
    Letzter Beitrag: 11.03.2005, 23:09
  5. tog pulse ON OFF...
    Von chris152 im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 20
    Letzter Beitrag: 03.04.2004, 15:12

Berechtigungen

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