Gast
#2122377
Hallo,
ich versuche einen PWM mit dem ECCP modul zu implementieren und am
Simulator (MPLAB SIM [MPLAB 8.66]) zu testen. Leider bekomme ich im
Simulator kein Ausgangssignal. Ein übertrag vom CCPR1L Register nach
CCPR1H findet beim compare zwischen Timer2 und PR2 statt.
Vielleicht ist auch mein portmapping nicht Okayy. Hab das Datenblatt
jetzt ein duzent mal gelesen und finde den fehler nicht.
Hoffentlich findet einer von euch den Fehler.
Danke für eure Hilfe
Hans
Here my asm. code:
;PWM
list p=18F26J
#include p18f26j11.inc
;CPU configuration
CONFIG XINST=OFF ;Extendet instruction Set OFF
CONFIG WDTEN=OFF ;Watchdog Timer OFF
CONFIG OSC=INTOSC
org 0x0
GOTO INIT
INIT MOVLW 0x1C ;Change the internal OSC to 125
kHz
MOVFF WREG,OSCCON
CLRF TCLKCON
CLRF PORTA
CLRF LATA
MOVLW 0x1F ;Make ports A digital
MOVFF WREG,ANCON0 ;Make ports A digital
CLRF TRISC
MOVLB 0x0E ; PPS registers are in BANK 14
MOVLW 0x55 ;LOCK, CLEAR PROCEDURE
MOVWF EECON2,0
MOVLW 0xAA
MOVWF EECON2,0
BCF PPSCON,0
MOVLW 0x0E ;Set PWM Output P1A to RP0
MOVFF WREG,RPOR0
MOVLW 0x55 ;LOCK, SET PROCEDURE
MOVWF EECON2,0
MOVLW 0xAA
MOVWF EECON2,0
BSF PPSCON,0
CLRF TRISA
;PWM --------------------------------------------------------
MOVLW 0x0C ;Set the CCP to PWM
MOVWF CCP1CON,0 ;-.-
MOVLW 0x26 ;Set the PWM period
MOVWF PR2,0 ;-.-
MOVLW 0x01 ;Set the PWM Duty-cycle
MOVWF CCPR1L,0
BSF CCP1CON,4
BSF CCP1CON,5
MOVLW 0x06 ;Set TMR2
MOVWF T2CON,0
MOVLW 0x1F
MOVWF PSTR1CON,0
LOOP NOP ;TEST LOOP
GOTO LOOP
END