• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   1 Anonymous Users






為什麼同樣輸出的兩個I/O port無法同步?
#1
新會員
新會員


查看用戶資訊
各位大哥大姐您好:
我設計一 使用ra0與ra1作ad轉換後
去執行邏輯判斷
當ra1值介於 81~101時才有輸出功能,
並將ad_ra0同時輸出至 PORTB與PORTD
然後將PORTB與PORTD以PWM形式輸出用示波器查看
但顯示出來
在某些範圍內沒有同步, 也就是兩個PWM訊號不一樣
PORTD的訊號總是會怪怪的
不知道有沒辦法解決, 謝謝!


;設計一每0.5ms計時中斷 tmr0 rate=1:16,20MHz,0.2 instrument-->3.2us,計時第156.25次時剛好0.5ms,所以tmr0出使設定為99
list p=16f877a,r=dec
include <p16f877a.inc>
;----user varibles-------
ad_ra0 equ 0x20
ad_ra1 equ 0x21
count equ 0X28
CounterA equ 0x29
CounterB equ 0x2a
CounterC equ 0x2b
w_temp equ 0x2c
status_temp equ 0x2d

;----user reset vector---
org 0x00
nop
goto mainline
;----Interrupt Vector---
org 0x04
goto IntService
;----Interrupt Service Routine---
IntService:
movwf w_temp
swapf STATUS,w
movwf status_temp

movf PORTB,W
banksel CCPR1L
movwf CCPR1L
movf PORTD,W
MOVWF CCPR2L

btfsc INTCON,T0IF
call Timer0

swapf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie
;---Timer1 subroutine---
Timer0:
banksel INTCON
bcf INTCON,T0IF
movlw .126
movwf TMR0
bsf INTCON,GIE
return
;----mainprogram--------
mainline:
call initial
mainloop
call ad_convert
call ad_convert1
call LOGIC
call Delay
goto mainloop
;---initial subroutine--
initial:
banksel TRISB
clrf TRISB
banksel PORTB
clrf PORTB
;
banksel TRISD
clrf TRISD
banksel PORTD
clrf PORTD
;
banksel TRISC ;for pwm initial
clrf TRISC
banksel PORTC
clrf PORTC
;
banksel PR2
movlw .249
movwf PR2
;
banksel TMR2
clrf TMR2
;
movlw 0x00
movwf CCPR1L
MOVWF CCPR2L
;
movlw 0x0c
movwf CCP1CON
MOVWF CCP2CON
;
movlw 0x04
movwf T2CON
;
banksel ADCON1
movlw b'00000000'
movwf ADCON1
;
bsf TRISA,0
bsf TRISA,1
bsf TRISA,2
bsf TRISA,3
bsf TRISA,5
bsf TRISE,0
bsf TRISE,1
bsf TRISE,2
;
clrw
clrf PCLATH
banksel OPTION_REG
movlw B'00000011'
movwf OPTION_REG
banksel TMR0
movlw .99
movwf TMR0
;
bsf INTCON,T0IE
bsf INTCON,GIE

return
;-----adconvert-----------
ad_convert:
banksel ADCON0
movlw b'10000001'
movwf ADCON0
call dly_20us
banksel ADCON0
bsf ADCON0,GO
AD_wait
btfsc ADCON0,GO
goto AD_wait
;
movf ADRESH,W
movwf ad_ra0

return
;-----adconvert1-----------
ad_convert1:
banksel ADCON0
movlw b'10001001'
movwf ADCON0
call dly_20us
banksel ADCON0
bsf ADCON0,GO
AD_wait1
btfsc ADCON0,GO
goto AD_wait1
;
movf ADRESH,W
movwf ad_ra1

return
;------dly-------------
dly_20us:
NOP
MOVLW .24
MOVWF count
DECLOOP
NOP
DECFSZ count,F
GOTO DECLOOP
RETURN

;------LOGIC----------
LOGIC:
MOVLW .82 ;if((ra1<101)&&(ra1>81)) 81 ~ 101 直線
BANKSEL ad_ra1
SUBWF ad_ra1,W
BTFSS STATUS,C
CLRF ad_ra0
MOVLW .101
SUBWF ad_ra1,W
BTFSS STATUS,C
GOTO straight_line
CLRF ad_ra0
RETURN

;========== straight_line mode ==============
straight_line:
MOVF ad_ra0,W
MOVWF PORTB
MOVWF PORTD
RETURN

;PIC Time Delay = 0.1 s with Osc = 20.000000 MHz
Delay
movlw D'3'
movwf CounterC
movlw D'140'
movwf CounterB
movlw D'83'
movwf CounterA
loop
decfsz CounterA,1
goto loop
decfsz CounterB,1
goto loop
decfsz CounterC,1
goto loop
return

end

發表於: 2006/11/12 20:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------