久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8253|回復: 1
打印 上一主題 下一主題
收起左側

18F458的CAN通信問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:19942 發表于 2009-12-11 14:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

請各位大哥幫幫小弟看看下面的程,謝謝大家:

LIST   P=18F458
#INCLUDE "P18F458.INC"
           ORG 0X00
           GOTO MAIN
       
           ORG 0X30

;*********初始化子程序***************
INITIAL             
           BCF TRISB,2
           BSF TRISB,3 ;設置CANRX/RB3為輸入
                        ;CANTX/RB2為輸出
                        ;設置CAN的波特率為125K,在Fosc=4M時,Tbit=8us,假設BRP=01h,則
                         ;TQ=[2*(1+BRP)]/Fosc=2*(1+1)/4=1us。
                          ;NOMINAL BIT RATE=8TQ,SJW=1,Sync_Seg=1TQ,Prog _Seg=1TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQ
           MOVLW 0X80
           MOVWF CANCON ;請求進入CAN配置模式REQOP=100
WAIT       BTFSS CANSTAT,OPMODE2 ;等待進入CAN配置模式OPMODE=100
           GOTO WAIT 
           MOVLW 0X09 
           MOVWF BRGCON1 ;設置SJW和BRP,SJW=1TQ,BRP=01H
           MOVLW 0X90
           MOVWF BRGCON2 ;設置Phase_Seg1=3TQ和Prog _Seg=1TQ
           MOVLW 0X42
           MOVWF BRGCON3 ;設置Phase_Seg2=3TQ
                         ;設置發送郵箱0標識符號和發送的數據
           MOVLW 0XFF
           MOVWF BSR     ;TXB0D0到TXB0D7的地址在F60h以內,需
                         ;要指定BSR
          
           BCF TXB0CON,TXREQ
           MOVLW 0X03
           MOVWF TXB0CON ;發送優先級為最高優先級,TXPRI=11
           MOVLW 0X08
           MOVWF TXB0DLC ;設置數據長度為8個字節
           MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7 ;寫發送緩沖器數據區的數據
           MOVLW 0X00
           MOVWF TXB0SIDH 
           MOVLW 0X01
           MOVWF TXB0SIDL ;設置發送緩沖器0的標準標識符,本程序采用
                          ;標準識符
                          ;設置接收郵箱0的標識符和初始化數據
       
          MOVLW 0X00
          MOVWF CIOCON
                       ;使CAN進入某種工作模式模式
          MOVLW 0X00
          MOVWF CANCON ;=0X40,進入自測試模式;
                        ;=0x00,正常操作模式
        
WAIT1    MOVF CANSTAT
                        ;等待進入CAN配置模式OPMODE=100
        
         ANDLW 0XE0
         SUBLW 0X00
         BTFSS STATUS,Z ;等待進入CAN正常操作模式OPMODE=000
                        ;或測試模式OPMODE=010
         GOTO WAIT1        
         RETURN

 
        


;****************PIC單片機CAN總線通訊匯編程序主程序******************

MAIN     NOP
         CLRF INTCON ;禁止所有中斷
        
        CALL INITIAL ;初始化   
       
LOOP     BSF TXB0CON,TXREQ ;請求發送,TXREQ=1
        
WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發送完成
         GOTO WAITE2    
                
         BCF TRISB,1
         BCF TRISB,4
         BCF PORTB,1   ;指示燈亮
         BCF PORTB,4    ;另一   指示燈亮      
          
         GOTO LOOP       

         RETURN
         END

 

問題:小弟用18F458+PCA82C251 在ICD2運行,可以運行下去,燈也指示亮,但是小弟不敢確定到底有沒有數據發送出去,所以小弟用了一個別人的CAN MONITOR 接到CANH 和CANL 上去,(CAN MONITOR 是MB90F543和232串口 組成的監視器,通過一個軟件察看發送過來的數據。軟件設置的ID也是0001H,可以確定MONITOR是好的,因為有其他的板子試了OK的),當不接監視板,程序可以順利運行,有兩個燈會亮,表示程序可以跑,但當接上MONITOR 的CANH 和CANL ,就不能跑了,燈不會亮,數據好像沒有發送過來,程序一直在

WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發送完成
         GOTO WAITE2    

這里停留。

我懷疑是阻抗不匹配,但是換了我那個458的板上的電阻,也還是相同的結果。

還有或許是監視板上的晶振不一樣,458的板是20MHZ,而監視板的好像不是20MHZ,因為模糊看得不清楚。

最后我就是懷疑MB90F543里面的程序設置的波特率還有同步跳轉寬度等等跟我的程序不一樣,但是我都不敢確定,請問各位大哥有什么看法????

我怎么樣樣才可以看到程序發送過來的數據MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7

 

??????

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:19942 發表于 2009-12-11 14:19 | 只看該作者

請各位大哥幫幫小弟看看下面的程,謝謝大家:

LIST   P=18F458
#INCLUDE "P18F458.INC"
           ORG 0X00
           GOTO MAIN
       
           ORG 0X30

;*********初始化子程序***************
INITIAL             
           BCF TRISB,2
           BSF TRISB,3 ;設置CANRX/RB3為輸入
                        ;CANTX/RB2為輸出
                        ;設置CAN的波特率為125K,在Fosc=4M時,Tbit=8us,假設BRP=01h,則
                         ;TQ=[2*(1+BRP)]/Fosc=2*(1+1)/4=1us。
                          ;NOMINAL BIT RATE=8TQ,SJW=1,Sync_Seg=1TQ,Prog _Seg=1TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQ
           MOVLW 0X80
           MOVWF CANCON ;請求進入CAN配置模式REQOP=100
WAIT       BTFSS CANSTAT,OPMODE2 ;等待進入CAN配置模式OPMODE=100
           GOTO WAIT 
           MOVLW 0X09 
           MOVWF BRGCON1 ;設置SJW和BRP,SJW=1TQ,BRP=01H
           MOVLW 0X90
           MOVWF BRGCON2 ;設置Phase_Seg1=3TQ和Prog _Seg=1TQ
           MOVLW 0X42
           MOVWF BRGCON3 ;設置Phase_Seg2=3TQ
                         ;設置發送郵箱0標識符號和發送的數據
           MOVLW 0XFF
           MOVWF BSR     ;TXB0D0到TXB0D7的地址在F60h以內,需
                         ;要指定BSR
          
           BCF TXB0CON,TXREQ
           MOVLW 0X03
           MOVWF TXB0CON ;發送優先級為最高優先級,TXPRI=11
           MOVLW 0X08
           MOVWF TXB0DLC ;設置數據長度為8個字節
           MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7 ;寫發送緩沖器數據區的數據
           MOVLW 0X00
           MOVWF TXB0SIDH 
           MOVLW 0X01
           MOVWF TXB0SIDL ;設置發送緩沖器0的標準標識符,本程序采用
                          ;標準識符
                          ;設置接收郵箱0的標識符和初始化數據
       
          MOVLW 0X00
          MOVWF CIOCON
                       ;使CAN進入某種工作模式模式
          MOVLW 0X00
          MOVWF CANCON ;=0X40,進入自測試模式;
                        ;=0x00,正常操作模式
        
WAIT1    MOVF CANSTAT
                        ;等待進入CAN配置模式OPMODE=100
        
         ANDLW 0XE0
         SUBLW 0X00
         BTFSS STATUS,Z ;等待進入CAN正常操作模式OPMODE=000
                        ;或測試模式OPMODE=010
         GOTO WAIT1        
         RETURN

 
        


;****************PIC單片機CAN總線通訊匯編程序主程序******************

MAIN     NOP
         CLRF INTCON ;禁止所有中斷
        
        CALL INITIAL ;初始化   
       
LOOP     BSF TXB0CON,TXREQ ;請求發送,TXREQ=1
        
WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發送完成
         GOTO WAITE2    
                
         BCF TRISB,1
         BCF TRISB,4
         BCF PORTB,1   ;指示燈亮
         BCF PORTB,4    ;另一   指示燈亮      
          
         GOTO LOOP       

         RETURN
         END

 

問題:小弟用18F458+PCA82C251 在ICD2運行,可以運行下去,燈也指示亮,但是小弟不敢確定到底有沒有數據發送出去,所以小弟用了一個別人的CAN MONITOR 接到CANH 和CANL 上去,(CAN MONITOR 是MB90F543和232串口 組成的監視器,通過一個軟件察看發送過來的數據。軟件設置的ID也是0001H,可以確定MONITOR是好的,因為有其他的板子試了OK的),當不接監視板,程序可以順利運行,有兩個燈會亮,表示程序可以跑,但當接上MONITOR 的CANH 和CANL ,就不能跑了,燈不會亮,數據好像沒有發送過來,程序一直在

WAITE2   
         BTFSC TXB0CON,TXREQ ;等待發送完成
         GOTO WAITE2    

這里停留。

我懷疑是阻抗不匹配,但是換了我那個458的板上的電阻,也還是相同的結果。

還有或許是監視板上的晶振不一樣,458的板是20MHZ,而監視板的好像不是20MHZ,因為模糊看得不清楚。

最后我就是懷疑MB90F543里面的程序設置的波特率還有同步跳轉寬度等等跟我的程序不一樣,但是我都不敢確定,請問各位大哥有什么看法????

我怎么樣樣才可以看到程序發送過來的數據MOVLW 0X00
           MOVWF TXB0D0
           MOVLW 0X01
           MOVWF TXB0D1
           MOVLW 0X02
           MOVWF TXB0D2
           MOVLW 0X03
           MOVWF TXB0D3
           MOVLW 0X04
           MOVWF TXB0D4
           MOVLW 0X05
           MOVWF TXB0D5
           MOVLW 0X06
           MOVWF TXB0D6
           MOVLW 0X07
           MOVWF TXB0D7

 

??????

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕日韩一区 | 成年网站在线观看 | www.国产精| 中文字幕二区 | 国产精品区一区二 | 综合色播 | 日本 欧美 国产 | 日韩视频一区二区在线 | 精品久久久久久久久久久久久久 | 激情欧美一区二区三区中文字幕 | 在线观看黄色电影 | 一区二区三区高清不卡 | 99小视频| 久久av网站| 中文字幕精品视频 | 中文字幕一区在线观看视频 | 黄色大片免费观看 | 精品无码久久久久久国产 | 谁有毛片| 精品啪啪 | 亚洲36d大奶网 | 一级片免费视频 | 天天干狠狠操 | 欧美成人一区二免费视频软件 | 免费一看一级毛片 | 伊人久久大香线 | 亚洲精品中文字幕中文字幕 | 欧日韩在线观看 | 在线一区视频 | 久久久久国产一区二区三区 | 国产成人精品综合 | 在线啊v | 日韩中文在线视频 | 国产 91 视频 | 欧美一区二区三区四区视频 | 精品国产乱码久久久久久闺蜜 | 日本综合在线观看 | 久久久99国产精品免费 | 国产在线一区观看 | 亚洲视频免费 | 欧美午夜精品久久久久久浪潮 |