mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC PWM duty cycle aendern


Autor: MartinK (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
also ich versuche gerade mit einer schleife eine led hell und dunkel zu 
faden. das mit dem pwm hab ich auch soweit verstanden und implementieren 
koennen, nur kann ich das verhaeltnis (duty cycle) im betrieb (mit 
meiner schleife) nicht aendern. wenn ich den wert per hand aendere und 
den pic neu brenne aendert die led die helligkeit, so wie es sein 
sollte.
fuer das verhaeltnis ist ja CCPR1L zustaendig, welches, soweit ich das 
gelesen habe, jederzeit veraenderbar sein sollte.
meinen code hab ich mit drangehangen, koennt ihr da bitte mal 
durchgucken ob ich einen grundlegenden fehler mache?
besten dank im vorraus.
mfg Martin

Autor: Atlas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du sicher, dass die LED überhaupt leuchtet?
Der Anschluss RC2 ist als Eingang konfiguriert.
Hier eine etwas veränderte Version Deines Programms.
Dieses funktioniert!

    MOVLW  B'00000100'
    MOVWF    T2CON           ; prescaler 1:1, Timer2 enabled

; Frequenzy 19.53 kHz
        BSF      STATUS,RP0       ; Bank1
        MOVLW    D'255'
        MOVWF    PR2              ; 3,9kHz
        BCF      STATUS,RP0       ; Bank1

; Verhältnis auf % einstellen
        MOVLW    D'64'
        MOVWF    CCPR1L          ; 25% von 255

; RC2/CCP1 auf Ausgang stellen
        BSF      STATUS,RP0      ; Bank1
        MOVLW  B'00000000'  ; PORTC output
        MOVWF  TRISC
        BCF      STATUS,RP0      ; Bank 0

; PWM MODE mit CCP1 initialisieren
        MOVLW   B'10001100'  ; dual output, half bridge mode
    MOVWF   CCP1CON    ; P1A, P1C actice high, P1B, P1D active high

START          ;Beginn Hauptprogramm
    INCF  R3,F
    MOVF  R3,W
    MOVWF    CCPR1L
    CALL  DELAY_10ms
    GOTO  START

    END

Autor: MartinK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, danke fuer deine antwort!
ja ich bin sicher, dass die led leuchtet. die haengt naemlich an RC5 und 
eine an RC4. denn das sind beim pic16f690 die pwm ausgaenge.
ich hab mal deine schleife versucht, also den zahlenwert in einem 
temporaeren register zu incrementieren und dann in CCPR1L zu kopieren, 
aber das funzt auch nicht.
die leds an portc 4 und 5 sind auch unterschiedlcih hell, weil die 
ausgaenge ja invertiert zueinander sind  und somit die pulsweite 
unterschiedlich ist.

nun frag ich mich, warum das nich klappt, einfach die pulsweite mit 
CCPR1L zu aendern? muss man evtl das pwm modul danach neustarten oder 
die ausgaenge oder so?

mfg martin

Autor: Atlas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mein oben angegebenes Programm habe ich auf einem 16F876 mit
einem Standard CCP-Modul laufen.
Vielleich solltest Du das ECCP-Modul des 16F690 ersteinmal auf
Standardbetrieb umschalten und es mit einer LED an P1A (RC5)
versuchen. Dazu ins Register CCP1CON den Wert B'00001100' laden.

MfG

Autor: MartinK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das war ja ne schwere geburt.
hab jetzt den ganzen tag rumgebastelt und es laeuft nun endlich so, wie 
ich es moechte.
dankeschoen fuer deine hilfe, es lag wohl zum einen an der 
initialisierung (die hat sich im simulator immer aufgehangen bzw 
wiederholt. habe das nun direkt ohne subroutine aufgerufen) und zum 
anderen an dem retlw, so dass die schleifen nicht durchlaufen wurden. 
(kA warum das so ist)
wie gesagt es haut jetzt hin =) ...puh
mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.