Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Sinusoidal pwm 16f887

Status
Not open for further replies.

gedza

Junior Member level 2
Joined
Nov 3, 2010
Messages
22
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,467
I'M HAVING A PROBLEM WITH LOOKUP VALUES IN THIS PROGRAM IF I INCREASE THE VALUE IN STEPCOUNT TO 200 AND INCREASE THE NUMBER OF LOOKUP VALUES TO 200 THE MPLAB SIMULATOR DOES NOT SHOW CHANGES OF DUTY CYCLE WHEN PR2 MATCHES TIMER 2.When the value initially loaded to the temporary register is between zero and 170 the program performs well on the simulator but i want it to perform sinusoidal pwm with two outputs at ccp1 and a complimentary output at RD5 when I load 200 .Is it that the simulator can be wrong and if loaded into the pic the program can work .help me debugg it please.

;**********************************************************************************************************************************************************************************************************************************************************************
; Name July.asm
; Date July 4,2011
; Version 1.00
; Programmer: Gerald .F. Murwira
; To an Awesome *** who gave his only begotten Son for us to be saved.
;***********************************************************************************************************************************************************************************************************************************************************************
;DESCRIPTION PURE SINE WAVE INVERTER
;*************************************************************************************************************************************************************************************************************************************************************************

list p=16f887
#include <p16f887.inc>
errorlevel -302
;*****************************************************************************************************************************************************************************************************************************************************************************
;TEMPORARY REGISTERS
;*****************************************************************************************************************************************************************************************************************************************************************************
STEPCOUNT EQU 0X20
TEMPW EQU 0X21
TEMPS EQU 0X22


;***********************************************************************************************************************************************************************************************************************************************************************
;START OF MAIN PROGRAM
;***********************************************************************************************************************************************************************************************************************************************************************

ORG 0X000
goto main
;************************************************************************************************************************************************************************************************************************************************************************
;INTERRUPT SERVICE ROUTINE
;************************************************************************************************************************************************************************************************************************************************************************
ORG 0X004
MOVWF TEMPW ;SAVE WORK REGISTER
MOVF STATUS,W
MOVWF TEMPS
BANKSEL CCPR1L

CALL TABLE
MOVWF CCPR1L
DECF STEPCOUNT
BTFSS STATUS,Z
goto exit
goto reload

reload
MOVLW .200
MOVWF STEPCOUNT
exit
MOVF TEMPS,W
MOVWF STATUS
SWAPF TEMPW,F
SWAPF TEMPW,W
BANKSEL PIR1
BCF PIR1,TMR2IF
BSF INTCON,GIE
RETFIE



main
MOVLW .200
MOVWF STEPCOUNT
BANKSEL TRISC
BSF TRISC,2
BSF TRISD,5

BANKSEL PR2
MOVLW 0XF9
MOVWF PR2
BANKSEL CCP1CON
CLRF CCP1CON
MOVLW 0X8C
MOVWF CCP1CON
BANKSEL CCPR1L
MOVLW .28

MOVWF CCPR1L
BANKSEL T2CON
BCF T2CON,T2CKPS0
BCF T2CON,T2CKPS1
BANKSEL T2CON
BSF T2CON,TMR2ON

LOOP1 BTFSS PIR1,TMR2IF
GOTO LOOP1
BCF PIR1,TMR2IF
BANKSEL TRISC
BCF TRISC,2
BCF TRISD,5
BANKSEL PIE1
BSF PIE1,TMR2IE
BSF INTCON,PEIE
BSF INTCON,GIE
LOOP2

goto LOOP2

TABLE

MOVF STEPCOUNT,W
ADDWF PCL,F
200 LOOKUP VALUES





END
 
Last edited:

HI gedza
did you check the limitation of MPLAB SIM with PWM in pic Midrange Manual
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top