Electronic Projects, forums and more.

Go Back   Electronic Circuits Projects Diagrams Free > Electronics Categories > Micro Controllers


Micro Controllers Discuss all aspects of micro controllers - building them, coding them, etc. All controllers are welcome - PIC, BASIC, Z8 Encore!, etc.

Reply
 
LinkBack Thread Tools Display Modes
Old 6th January 2006, 02:55 PM   (permalink)
Default how to give phase shift of 120degree

hello everybody,
i'm loading the code here which gives me output as a 50hz pulse on each pin to which i'm giving high voltage first and on pin PORTC,5 it doesn't matter voltage is high or low a 50hz pulse is there.in same code i'm using timer3 for a phase shift of 120degree but while debugging its showing me that much delay in between req pins but in actual its not showing on CRO where i'm doing wrong

CODE:


#include "P18F458.inc"

TENMH equ D'16'
TENML equ D'243'
twoMH equ D'7'
twoML equ D'19'
oneMH equ D'4'
oneML equ D'7'
COUNT2 equ D'200'
red equ B'10100000'
red1 equ B'01000000'
F EQU 0x0001
VARIEBALS UDATA
COUNTH res 1
COUNTL res 1
COUNT1 RES 1
COUNT3 RES 1
;COUNT2 RES 1
COUNT4 RES 1
twoL res 1
twoH res 1
oneL res 1
oneH res 1



org 0x00000000
goto START
ORG 0X00000008
GOTO TMR3_ISR
org 0x000000ae
START

clrf PORTC
clrf PORTD
clrf LATD
clrf LATC

movlw 0x00
movwf TRISD
movwf TRISC
movlw 0x01
bsf RCON,IPEN ;enable priority interrupts.
; bSf IPR1,TMR1IP ;set Timer1 as a high priority interrupt source
bsf IPR2,TMR3IP ;set Timer3 as a low priority interrupt source
; bcf PIR1,TMR1IF ;clear the Timer1 interrupt flag
bcf PIR2,TMR3IF ;clear the Timer3 interrupt flag
; bsf PIE1,TMR1IE ;enable Timer1 interrupts
bsf PIE2,TMR3IE ;enable Timer3 interrupts
; BSF INTCON,TMR0IE
; BCF INTCON,TMR0IF
bsf INTCON,GIEH ;set the global interrupt enable bits
bsf INTCON,GIEL ; "


clrf T3CON
clrf TMR3H ;clear Timer1 high
clrf TMR3L ;clear Timer1 low
movlw 0xD0
movwf TMR3H
movlw 0x00
movwf TMR3L
bsf T3CON,TMR3ON ;turn on Timer3
MOVLW 0X01
MOVWF COUNT4

bsf LATD,7
bSf LATD,5

bSf LATD,6
bsf LATD,4

;
loop

goto loop




return

;************************************
;ISR ROUTINES
;************************************

TMR3_ISR


CPFSEQ COUNT4
LP1 goto lpl
LP2 ;RCALL DELAY1
BTG LATD,7
BTG LATD,6
INCF COUNT4
movlw 0x02
cpfseq COUNT4
lp0
goto lpl
lp00
bcf PIR2,TMR3IF ;Clear the Timer1 interrupt flag.
movlw D'200'
movwf COUNT2
lp000

movlw 0xED
movwf TMR3H
movlw 0xB0
movwf TMR3L
movlw 0x02

T1POLLl
btfss PIR2,TMR3IF ;Poll TMR11 interrupt flag to wait for another
; ; TMR1 overflow.
bra T1POLLl

bcf PIR2,TMR3IF ;Clear the Timer1 interrupt flag again.
decfsz COUNT2,1
goto lp000


CPFSEQ COUNT4
LPP1
goto lpl
LPP2

DECF COUNT4
; decf COUNT4
; decf COUNT4
GOTO LP3
LP3
BTG LATD,5
BTG LATD,4
movlw 0xD0
movwf TMR3H
movlw 0x00
movwf TMR3L
MOVLW 0X01

GOTO lpl

lpl
RETFIE

END
esconele is offline  
Old 6th January 2006, 04:03 PM   (permalink)
Default

Use the code button to poperly post your code.
__________________
"Having to do with Motion Control"
motion is offline  
Old 7th January 2006, 06:57 AM   (permalink)
Default Re: how to give phase shift of 120degree

Quote:
Originally Posted by esconele
hello everybody,
i'm loading the code here which gives me output as a 50hz pulse on each pin to which i'm giving high voltage first and on pin PORTC,5 it doesn't matter voltage is high or low a 50hz pulse is there.in same code i'm using timer3 for a phase shift of 120degree but while debugging its showing me that much delay in between req pins but in actual its not showing on CRO where i'm doing wrong
[code]
CODE:


#include "P18F458.inc"

TENMH equ D'16'
TENML equ D'243'
twoMH equ D'7'
twoML equ D'19'
oneMH equ D'4'
oneML equ D'7'
COUNT2 equ D'200'
red equ B'10100000'
red1 equ B'01000000'
F EQU 0x0001
VARIEBALS UDATA
COUNTH res 1
COUNTL res 1
COUNT1 RES 1
COUNT3 RES 1
;COUNT2 RES 1
COUNT4 RES 1
twoL res 1
twoH res 1
oneL res 1
oneH res 1



org 0x00000000
goto START
ORG 0X00000008
GOTO TMR3_ISR
org 0x000000ae
START

clrf PORTC
clrf PORTD
clrf LATD
clrf LATC

movlw 0x00
movwf TRISD
movwf TRISC
movlw 0x01
bsf RCON,IPEN ;enable priority interrupts.
; bSf IPR1,TMR1IP ;set Timer1 as a high priority interrupt source
bsf IPR2,TMR3IP ;set Timer3 as a low priority interrupt source
; bcf PIR1,TMR1IF ;clear the Timer1 interrupt flag
bcf PIR2,TMR3IF ;clear the Timer3 interrupt flag
; bsf PIE1,TMR1IE ;enable Timer1 interrupts
bsf PIE2,TMR3IE ;enable Timer3 interrupts
; BSF INTCON,TMR0IE
; BCF INTCON,TMR0IF
bsf INTCON,GIEH ;set the global interrupt enable bits
bsf INTCON,GIEL ; "


clrf T3CON
clrf TMR3H ;clear Timer1 high
clrf TMR3L ;clear Timer1 low
movlw 0xD0
movwf TMR3H
movlw 0x00
movwf TMR3L
bsf T3CON,TMR3ON ;turn on Timer3
MOVLW 0X01
MOVWF COUNT4

bsf LATD,7
bSf LATD,5

bSf LATD,6
bsf LATD,4

;
loop

goto loop




return

;************************************
;ISR ROUTINES
;************************************

TMR3_ISR


CPFSEQ COUNT4
LP1 goto lpl
LP2 ;RCALL DELAY1
BTG LATD,7
BTG LATD,6
INCF COUNT4
movlw 0x02
cpfseq COUNT4
lp0
goto lpl
lp00
bcf PIR2,TMR3IF ;Clear the Timer1 interrupt flag.
movlw D'200'
movwf COUNT2
lp000

movlw 0xED
movwf TMR3H
movlw 0xB0
movwf TMR3L
movlw 0x02

T1POLLl
btfss PIR2,TMR3IF ;Poll TMR11 interrupt flag to wait for another
; ; TMR1 overflow.
bra T1POLLl

bcf PIR2,TMR3IF ;Clear the Timer1 interrupt flag again.
decfsz COUNT2,1
goto lp000


CPFSEQ COUNT4
LPP1
goto lpl
LPP2

DECF COUNT4
; decf COUNT4
; decf COUNT4
GOTO LP3
LP3
BTG LATD,5
BTG LATD,4
movlw 0xD0
movwf TMR3H
movlw 0x00
movwf TMR3L
MOVLW 0X01

GOTO lpl

lpl
RETFIE

END[code][/code]
esconele is offline  
Reply

Bookmarks

Thread Tools
Display Modes





All times are GMT. The time now is 05:21 AM.


Electronic Circuits  |  Learning Electronics
Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.

eXTReMe Tracker