• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




« 1 (2)


Re: 不知為何的封包遺失 請大家幫幫忙
#7
資深會員
資深會員


查看用戶資訊
FSR 0~255,你怎麼會丟0x120進去??

發表於: 2007/9/4 13:08
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 不知為何的封包遺失 請大家幫幫忙
#6
新會員
新會員


查看用戶資訊
恩 程式是每4ms中斷一次 然後用RS-232傳出一些資料和A/D 的轉換值 輸出內容大概是這樣
標頭(test test1) 序號(sn) 帶兩筆A/D轉換資料(xx xx)
所以看序號就可以知道 傳送資料到第三筆時就會重頭來過
目前原因不明

發表於: 2007/9/4 12:37
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 不知為何的封包遺失 請大家幫幫忙
#5
新會員
新會員


查看用戶資訊
恩 程式是每4ms中斷一次 然後用RS-232傳出一些資料和A/D 的轉換值 輸出內容大概是這樣
標頭(test test1) 序號(sn) 帶兩筆A/D轉換資料(xx xx)
所以看序號就可以知道 傳送資料到第三筆時就會重頭來過
目前原因不明

發表於: 2007/9/4 12:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 不知為何的封包遺失 請大家幫幫忙
#4
新會員
新會員


查看用戶資訊
你好 謝謝你的建議
不過問題仍舊存在
就像上面所說的
大約傳送到 FF FF 03 xx xx 後 又重頭開始
FF FF 01 xx xx 這樣 照道理是應該要繼續 FF FF 04 xx xx
以此類推 我不知道是不是我程式的瑕疵導致
在請問一下 FSR 設定似乎有問題是指?.....

發表於: 2007/9/4 12:12
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 不知為何的封包遺失 請大家幫幫忙
#3
資深會員
資深會員


查看用戶資訊
程式的功能好像是每4MS中斷1次,用RS-232傳出一些資料和A/D的轉換值.

;======================================
transfer1:                      ;傳送 data1 data
        banksel TXSTA           
;B1
        btfss   TXSTA
,TRMT
        
goto    transfer1
        clrf    status          
;B0
;        movf    INDF,W
        call    delay_25us      
;delay 150us
        call    delay_25us
        call    delay_25us
        call    delay_25us
        call    delay_25us
        call    delay_25us
;        banksel TXREG
        movf    INDF
,W         ;我想這行應該在這裡才對
        movwf    TXREG          
;???
        goto     
transfer1_loop
transfer1_loop
:
        
incf     FSR
        decfsz   number2
        
goto     transfer1
;======================================

發表於: 2007/9/4 12:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 不知為何的封包遺失 請大家幫幫忙
#2
資深會員
資深會員


查看用戶資訊
稍微整理了一下,發現FSR的設定值好像有問題??
list p=16F877
        
#include <p16f877.inc>

;----------------------------------------
        
INDF            equ     0x00
        VAL_US          equ     .5
        VAL_US_1        equ     .80
        VAL_MS          equ     .249
        VAL_MS_1        equ     .250
        count           equ     0x20
        HEADER          equ     0x21
        PORTB_DATA      equ     0x23
        ECG_buffer      equ     0x24
        flag            equ     0x25
        temp1           equ     0x26
        temp2           equ     0x27
        flag1           equ     0x28
        flag2           equ     0x29
        number          equ     0x2A
        buffer          equ     0x2B
        number1         equ     0x2C
        number2         equ     0x2D
        number3         equ     0x2E
        flag5           equ     0x2F
        flag3           equ     0x30
        temp3           equ     0x31
        HEADER1         equ     0x22
        HEADER2         equ     0x32
        count_ms        equ     0x33
        count_ms_1      equ     0x34
        HEADER3         equ     0x35
        HEADER4         equ     0x36
        HEADER5         equ     0x37
        test            equ     0x38
        test1           equ     0x39
;----------------------------------------
        
org 0x00
        nop
        
goto initial
;----------------------------------------
        
org 0x04
        
goto isr
;----------------------------------------
initial:
        
banksel SPBRG           ;B1
        movlw   .25             
;Baud Rate 19.2kps
        movwf   SPBRG
        banksel RCSTA           
;B0
        bsf     RCSTA
,SPEN      ;致能RC7/RX/DR及
                                
;RC6/TX/CK為串列埠接腳
        movlw   0x12
        movwf   HEADER 
;Header 255

        movlw   0x34
        movwf   HEADER1 
;Header 255

        movlw   0x56
        movwf   HEADER2 
;Header 255

        movlw   0x78
        movwf   HEADER3 
;Header 255

        movlw   0x9A
        movwf   HEADER4 
;Header 255

        movlw   0xBC
        movwf   HEADER5

        movlw   0x00
        movwf   number

        movlw   0xAB
        movwf   test

        movlw   0xCD
        movwf   test1

        movlw   0x01
        movwf   number1

        movlw   0x01
        movwf   number2

        movlw   0x01
        movwf   number3

        MOVLW   .120            
;delay 600us
        MOVWF   count
        call    dec_loop

        banksel TXSTA           
;B1
        bcf     TXSTA
,SYNC      ;非同步模式
        bsf     TXSTA
,BRGH      ;非同步 高速模式
        bsf     TXSTA
,TXEN      ;傳送致能
tss
:
        
btfss   TXSTA,TRMT
        
goto tss
;----------------------------------------
        
clrf    TRISC           ;PORTC Output

        movlw   
b'00000001'
        
movwf   TRISB           ;PORTB Input

        movlw   
b'00000011'
        
movwf   TRISA

        clrf    ADCON1

        movlw   
b'00000101'
        
movwf   OPTION_REG        ;TMR0 Rate 1:64

        banksel flag1           
;B0
        clrf    flag1
        clrf    flag2
        clrf    flag3

        clrf    PORTA
        clrf    PORTB
        clrf    PORTC           
;Clear PORTC

        movlw   0x41
        movwf   ADCON0          
;ADC轉換時間 8Tosc
                                
;channel5,(RE0/AN5)
                                ;
ADON
        bsf     INTCON
,GIE
        bsf     INTCON
,INTE
;======================================
start:
Timer0:
        
bsf     INTCON,T0IE
        bcf     INTCON
,T0IF
        banksel TMR0            
;B0
        movlw   .193
        movwf   TMR0
;======================================
store:
        
clrf    status          ;B0
        bsf     STATUS
,IRP
        
[color=006600]movlw   0x120           ;最大值256  0xFF[/color]
        
movwf   FSR
;======================================
Infinite:
        
banksel flag5
        btfsc   flag5
,0
        
goto    Infinite
        
goto    AD1
;======================================
AD1:
        
banksel ADCON0          ;B0 AD data1
        movlw   
B'01000001'     ;設定使用channel RA0輸入類比信號data1
        movwf   ADCON0
        call    delay_25us
        bsf     ADCON0
,GO
A1
:                             ;AD1是否完成
        btfsc   ADCON0
,GO
        
goto    A1
        movf    ADRESH
,W
        movwf   INDF
        incf    FSR

        banksel flag5
        bsf     flag5
,0
        decfsz  number3
        
goto    Infinite
AD2
:
        
clrf    status          ;B0
        bcf     STATUS
,IRP
        clrf    FSR
        bsf     flag3
,3
        movlw   
B'01001001'     ;設定使用channel RA1輸入類比信號data2
        movwf   ADCON0
        call    delay_25us
        bsf     ADCON0
,GO
A2
:                             ;AD2是否完成
        btfsc   ADCON0
,GO
        
goto    A2
        movf    ADRESH
,W
        movwf   temp2
        
goto    Infinite
;======================================
isr:
        
bcf     INTCON,T0IF
        banksel number1         
;B0
        decfsz  number1
        
goto    RelifeTime

        bcf     STATUS
,IRP
        clrf    FSR
        bcf     INTCON
,T0IF
transfer00
:
        
banksel TXSTA           ;B1
        btfss   TXSTA
,TRMT
        
goto    transfer00

        banksel test            
;B0
        movf    test
,W
        movwf   TXREG
        
goto    transfer0
;======================================
transfer0:                      ;傳送 data2 data
        banksel TXSTA           
;B1
        btfss   TXSTA
,TRMT
        
goto    transfer0

        banksel test1           
;B0
        movf    test1
,W
        movwf   TXREG
        
goto    SN
;======================================
SN:
        
banksel TXSTA           ;B1
        btfss   TXSTA
,TRMT
        
goto    SN
        banksel number          
;B0
        incf    number
        movf    number
,w
        movwf   TXREG
        
goto    store1
;======================================
store1:
        
bsf     STATUS,IRP
        
[color=006600]movlw   0x120           ;最大值256  0xFF[/color]
        
movwf   FSR
;======================================
transfer1:                      ;傳送 data1 data
        banksel TXSTA           
;B1
        btfss   TXSTA
,TRMT
        
goto    transfer1
        clrf    status          
;B0
        movf    INDF
,W
        call    delay_25us      
;delay 150us
        call    delay_25us
        call    delay_25us
        call    delay_25us
        call    delay_25us
        call    delay_25us
;        banksel TXREG
        
[color=006600]movwf    TXREG          ;???[/color]
        goto     
transfer1_loop
transfer1_loop
:
        
incf     FSR
        decfsz   number2
        
goto     transfer1
;======================================
transfer2:                      ;傳送 data2 data
        clrf    status          
;B0
        clrf    FSR
        btfss   TXSTA
,TRMT
        
goto    transfer2

        movf    temp2
,w
        movwf   TXREG
        movlw   0x01
        movwf   number1
        movlw   0x01
        movwf   number2
        movlw   0x01
        movwf   number3
;======================================
store2:
        
bsf     STATUS,IRP
        
[color=006600]movlw   0x120           ;最大值256  0xFF[/color]
        
movwf   FSR
;======================================
RelifeTime:
        
banksel flag5           ;B0
        bcf     flag5
,0
        movlw   .193
        movwf   TMR0
        retfie
;======================================

;---------------
delay subroutine--------
delay_25us:
        
movlw   VAL_US          ;5
        movwf   count
dec_loop
:
        
nop
        decfsz  count
,f
        
goto    dec_loop
        
return
;---------------------------------------
delay_400us:
        
movlw   VAL_US_1        ;80
        movwf   count
dec_loop_1
:
        
nop
        decfsz  count
,f
        
goto    dec_loop_1
        
return
;---------------------------------------
delay_250ms:
        
movlw   VAL_MS_1        ;250
        movwf   count_ms_1
loop_ms
:
        
call    delay_1ms
        decfsz  count_ms_1
,f
        
goto    loop_ms
        
return
;---------------------------------------
delay_1ms:
        
nop
        movlw   VAL_MS          
;249
        movwf   count_ms
dec_loop_f
:
        
nop
        decfsz  count_ms
,f
        
goto    dec_loop_f
        
return
;---------------------------------------
        
end


發表於: 2007/9/4 11:44
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


不知為何的封包遺失 請大家幫幫忙
#1
新會員
新會員


查看用戶資訊
我使用的chip 是pic16f877
在傳輸資料時 不知為何的 資料並沒有完全的傳輸出來
我在電腦裡 一步一步慢慢跑是沒有錯
但實際傳輸的時候 資料遺失去相當嚴重
以下是我的程式 希望經驗豐富的高手能夠幫我解答
照道理來說 可以看到的值應該為
AB CD 01 XX XX
AB CD 02 XX XX
AB CD 03 XX XX
以此類推 一直下去
但實際看到 卻只到 第三行之後就完全消失
而且還從頭來過 我百思不得其解

list p=16F877
#include <p16f877.inc>

VAL_US equ .5
VAL_US_1 equ .80
VAL_MS equ .249
VAL_MS_1 equ .250
count equ 0x20
HEADER equ 0x21
PORTB_DATA equ 0x23
ECG_buffer equ 0x24
flag equ 0x25
temp1 equ 0x26
temp2 equ 0x27
flag1 equ 0x28
flag2 equ 0x29
number equ 0x2A
buffer equ 0x2B
number1 equ 0x2C
number2 equ 0x2D
number3 equ 0x2E
flag3 equ 0x30
flag5 equ 0x2F
temp3 equ 0x31
HEADER1 equ 0x22
HEADER2 equ 0x32
count_ms equ 0X33
count_ms_1 equ 0X34
HEADER3 equ 0x35
HEADER4 equ 0X36
HEADER5 equ 0X37
test equ 0x38
test1 equ 0x39

org 0x00
nop
goto initial

org 0X04
goto isr

initial:
banksel SPBRG
movlw .25 ;Baud Rate = 19.2kps
movwf SPBRG
banksel RCSTA
bsf RCSTA,SPEN ;致能RC7/RX/DR及
;RC6/TX/CK為串列埠接腳
banksel HEADER
movlw 0x12
movwf HEADER ;Header = 255
banksel HEADER1
movlw 0x34
movwf HEADER1 ;Header = 255
banksel HEADER2
movlw 0x56
movwf HEADER2 ;Header = 255
banksel HEADER3
movlw 0x78
movwf HEADER3 ;Header = 255
banksel HEADER4
movlw 0x9A
movwf HEADER4 ;Header = 255
banksel HEADER5
movlw 0xBC
movwf HEADER5
banksel number
movlw 0x00
movwf number
banksel test
movlw 0xAB
movwf test
banksel test1
movlw 0xCD
movwf test1
banksel number1
movlw 0x01
movwf number1
banksel number2
movlw 0x01
movwf number2
banksel number3
movlw 0x01
movwf number3

call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us

banksel TXSTA
bcf TXSTA,SYNC ;非同步模式
bsf TXSTA,BRGH ;非同步 高速模式
bsf TXSTA,TXEN ;傳送致能
banksel TXSTA
tss:
btfss TXSTA,TRMT
goto tss

;=================================================================
;transfer10: ;傳送 data2 data
; banksel TXSTA
; btfss TXSTA,TRMT
; goto transfer10
; call delay_25us
; banksel HEADER
; movf HEADER,w
; banksel TXREG
; movwf TXREG
; call delay_25us
; call delay_25us
; call delay_25us
; call delay_25us


;transfer20: ;傳送 data2 data

; banksel TXSTA
; btfss TXSTA,TRMT
; goto transfer20
; call delay_25us
; banksel HEADER1
; movf HEADER1,w
; banksel TXREG
; movwf TXREG
; call delay_25us
; call delay_25us
; call delay_25us
; call delay_25us



;transfer30: ;傳送 data2 data

; banksel TXSTA
; btfss TXSTA,TRMT
; goto transfer30
; call delay_25us
; banksel HEADER2
; movf HEADER2,w
; banksel TXREG
; movwf TXREG
; call delay_25us
; call delay_25us
; call delay_25us
; call delay_25us


;transfer40: ;傳送 data2 data

; banksel TXSTA
; btfss TXSTA,TRMT
; goto transfer40

; banksel HEADER3
; movf HEADER3,w
; banksel TXREG
; movwf TXREG
; call delay_25us
; call delay_25us
; call delay_25us
; call delay_25us

;=================================================================

banksel TRISC
clrf TRISC ;PORTC = Output

banksel TRISB
movlw b'00000001'
movwf TRISB ;PORTB = Input

banksel TRISA
clrf TRISA
bsf TRISA,0
bsf TRISA,1
; bsf TRISA,2

banksel flag1
clrf flag1
clrf flag2
clrf flag3

banksel PORTB
clrf PORTB

banksel PORTC
clrf PORTC ;Clear PORTC
banksel ADCON1
clrf ADCON1

movlw b'00000101'
movwf OPTION_REG ;TMR0 Rate = 1:64

banksel ADCON0
movlw 0x41
movwf ADCON0 ;ADC轉換時間 8Tosc
;channel5,(RE0/AN5)
;ADON
banksel PIE1

bsf INTCON,GIE
bsf INTCON,INTE

start:

;banksel TMR0
;movlw .193
;movwf TMR0
;banksel flag
;bsf flag,3
; banksel PORTB
; bcf PORTB,4

;call fky
;==============================================
;==============================================
Timer0:
banksel INTCON
bsf INTCON,T0IE
bcf INTCON,T0IF
banksel TMR0
movlw .193
movwf TMR0


;================================================

;===========================================
store:
banksel STATUS
bsf STATUS,IRP
INDF equ 0x00
banksel FSR
movlw 0x120
movwf FSR

;===========================================
;===========================================
Infinite:
banksel flag5
btfsc flag5,0
goto Infinite
goto AD1

;===========================================

AD1:
banksel ADCON0 ;AD data1
movlw B'01000001' ;設定使用channel RA0輸入類比信號data1
movwf ADCON0
call delay_25us
bsf ADCON0,GO
A1: ;AD1是否完成
btfsc ADCON0,GO
goto A1
movf ADRESH,w
movwf INDF
incf FSR
banksel flag5
bsf flag5,0
banksel number3
decfsz number3
goto Infinite


AD2:
banksel STATUS
bcf STATUS,IRP
clrf FSR
bsf flag3,3
banksel ADCON0
movlw B'01001001' ;設定使用channel RA1輸入類比信號data2
movwf ADCON0
call delay_25us
bsf ADCON0,GO
A2: ;AD2是否完成
btfsc ADCON0,GO
goto A2
movf ADRESH,w
banksel temp2
movwf temp2
;banksel flag5
;bsf flag5,0
goto Infinite

isr:
banksel INTCON
bcf INTCON,T0IF
banksel number1
decfsz number1
goto RelifeTime
banksel STATUS
bcf STATUS,IRP
clrf FSR
banksel INTCON
bcf INTCON,T0IF
transfer00:
banksel TXSTA
btfss TXSTA,TRMT
goto transfer00
banksel test
movf test,w
banksel TXREG
movwf TXREG

goto transfer0

transfer0: ;傳送 data2 data

banksel TXSTA
btfss TXSTA,TRMT
goto transfer0

banksel test1
movf test1,w
banksel TXREG
movwf TXREG

goto SN

SN:
banksel TXSTA
btfss TXSTA,TRMT
goto SN
banksel number
incf number
movf number,w
banksel TXREG
movwf TXREG
goto store1
;===========================================
store1:
banksel STATUS
bsf STATUS,IRP
INDF equ 0x00
banksel FSR
movlw 0x120
movwf FSR

;===========================================
transfer1: ;傳送 data1 data

banksel TXSTA
btfss TXSTA,TRMT
goto transfer1
banksel INDF
movf INDF,w
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
call delay_25us
banksel TXREG
movwf TXREG
goto transfer1_loop

transfer1_loop:
incf FSR
banksel number2
decfsz number2
goto transfer1

transfer2: ;傳送 data2 data
banksel STATUS
bcf STATUS,IRP
clrf FSR
banksel TXSTA
btfss TXSTA,TRMT
goto transfer2
banksel temp2
movf temp2,w
banksel TXREG
movwf TXREG
banksel number1
movlw 0x01
movwf number1
banksel number2
movlw 0x01
movwf number2
banksel number3
movlw 0x01
movwf number3
;===========================================
store2:
banksel STATUS
bsf STATUS,IRP
INDF equ 0x00
banksel FSR
movlw 0x120
movwf FSR

;===========================================



;====================================
RelifeTime:
banksel flag5
bcf flag5,0
banksel TMR0
movlw .193
movwf TMR0
;====================================
retfie


;

;---------------delay subroutine--------------
delay_25us:
movlw VAL_US
movwf count
dec_loop nop
decfsz count,f
goto dec_loop
return


delay_400us:
movlw VAL_US_1
movwf count
dec_loop_1 nop
decfsz count,f
goto dec_loop_1
return


;---------------------------------------------
delay_250ms:
movlw VAL_MS_1
movwf count_ms_1
loop_ms call delay_1ms
decfsz count_ms_1,f
goto loop_ms
return

delay_1ms:
nop
movlw VAL_MS
movwf count_ms
dec_loop_f nop
decfsz count_ms,f
goto dec_loop_f
return

end

發表於: 2007/9/4 3:33
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... ]

教育訓練中心

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