logo elektroda
logo elektroda
X
logo elektroda

PIC18f4580 - ECCP, falsche Auswertung bei der Capture mode

Vithu1512 1449 1
WERBUNG
  • #1 19186107
    Vithu1512
    Niveau 1  
    PIC18f4580 - ECCP, falsche Auswertung bei der Capture mode

    Hallo zusammen,
    Benutze den PIC18f4580, der mit einer Systemfrequenz von 40 Mhz arbeitet.
    Er beinhaltet einen CCP Mode und ECCP.
    Ich habe einen PWM Signal am ECCP Pin P1A mit 1 Mhz Frequenz ausgegeben.
    (s.h Bild grünes Signal).
    Und nun möchte ich mit Hilfe der Capture Mode den ausgegebenen Signal
    auslesen. Für die Übergabe verwende ich UART.

    Das Problem ist, daß ich unterschiedliche Werte am Ausgang bekomme. Am Pin
    von RC2 (Capture Mode) bekomme ich das selbe Signal wie bei der ECCP.
    (s.h Bild pinkes Signal).

    Würde es überhaupt klappen, daß ich Capture Mode und ECCP Mode
    gleichzeitig verwende?

    Warum bekomme ich unterschiedliche Werte?
    Warum bekomme ich nicht die vorgegebene Frequenz (1 Mhz)?

    Anbei findet ihr meinen Programmcode, UART Ausgabe, und die aufgezeichneten
    Signale.

    PIC18f4580 - ECCP, falsche Auswertung bei der Capture mode
  • WERBUNG
  • #2 19203753
    szymonjg
    Niveau 16  
    Wenn der PIC18-Oszillator mit 40 MHz arbeitet, bedeutet dies, dass der CPU-Zyklustakt 10 MHz beträgt. Bei 1 MHz PWM stellt sich heraus, dass bei jeder steigenden Flanke führt der Prozessor nur 10 Zyklen aus, was höchstwahrscheinlich nicht ausreicht, um die Unterbrechung während dieser Zeit zu behandeln, einen Wert über UART zu senden.
    Außerdem fehlt dem Code eine Funktion: Bedienung der Unterbrechung. Die Unterbrechung in PIC18 besteht darin, dass der Prozessor je nach Priorität, zur Unterbrechung-Vektoradresse 000008h oder 000018h springt, wenn die Unterbrechung auftritt.
    Unten finden Sie ein Beispiel für eine Unterbrechung-Funktion für den C18-Compiler aus dem MPLAB® C18 C COMPILER-BENUTZERHANDBUCH.

    Code: C / C++
    Melde dich an, um den Code zu sehen

    [F]
WERBUNG