• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 關於 CAN BUS 的 ID 問題
#4
初級會員
初級會員


查看用戶資訊
我想要請教一下一些問題
我在範例程式裡面看到一些 filter
以我所了解的,就是利用 filter 和 mask 去判斷是不是自己要的資料

#define MESSAGE_ID1 0x120
#define RX_Filter0 0x110
#define RX_Filter1 0x00
#define RX_Filter2 0x00
#define RX_Filter3 0x0
#define RX_Filter4 0x00
#define RX_Filter5 0x00
#define RXB0_MASK 0x7ff // 0b111 1111 1100
#define RXB1_MASK 0x7ff

我看這裡面有定義 filter 的參數,還有丟出去的 id (0x120)
我找不到這些 filter 代表什麼
他用什麼方式去 filter 這些資料?

另外
他在設 Mask 和 Filter

CANSetMask(CAN_MASK_B1, RXB0_MASK, CAN_CONFIG_STD_MSG ) ; // Set Mask For Standard Data Frame
CANSetMask(CAN_MASK_B2, RXB1_MASK, CAN_CONFIG_STD_MSG ) ;

CANSetFilter(CAN_FILTER_B1_F1, RX_Filter0 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B1_F2, RX_Filter1 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F1,RX_Filter2 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F2,RX_Filter3 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F3,RX_Filter4 , CAN_CONFIG_STD_MSG) ;
CANSetFilter(CAN_FILTER_B2_F4, RX_Filter5 , CAN_CONFIG_STD_MSG) ;

這些 CAN_MASK_B1,CAN_MASK_B2, CAN_FILTER_B1_F1, 等等
在哪裡定義?

我在 h 檔案裡面找到這樣的東西
可是不知道他代表什麼

enum CAN_MASK
{
CAN_MASK_B1,
CAN_MASK_B2
};



enum CAN_FILTER
{
CAN_FILTER_B1_F1,
CAN_FILTER_B1_F2,
CAN_FILTER_B2_F1,
CAN_FILTER_B2_F2,
CAN_FILTER_B2_F3,
CAN_FILTER_B2_F4
};

不知道能不能請教一下
定義這些 Rx_Filter 的方式是什麼?

#define MESSAGE_ID1 0x120
#define RX_Filter0 0x110
這兩個有什麼關係,或是會做怎麼樣的過濾?
謝謝

發表於: 2008/2/22 11:58
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於 CAN BUS 的 ID 問題
#3
版主
版主


查看用戶資訊
如果你上過 CAN 的 workshop 這些都不是問題了,一言難盡,打電話來吧!用講的比較快,用寫的寫不完,而且打字也沒那麼快。

發表於: 2008/1/25 14:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 關於 CAN BUS 的 ID 問題
#2
高級會員
高級會員


查看用戶資訊
請參考看看!!
Q1:CANReceiveMessage(&RX_ID1,RX_Data_Buf1,&RX_Data_Len1,&RX1_Message_Flag ) ;
,在 RX_ID1 前面有一個 &,是什麼意思?
A1:你必須先看此函數的PROTYPE:
BOOL CANReceiveMessage(unsigned long *id,
BYTE *Data,
BYTE *DataLen,
enum CAN_RX_MSG_FLAGS *MsgFlags)
很清楚傳入的ARGUMENTS必須為位址。當你呼叫此函數去得到CAN MODULE的CAN MESSAGE你必須先建立一塊記憶體去存放這些資料(EX.id,data(8 bytes),length)。&RX_ID1的意思就是將收到的id放到你建立的RX_ID1 變數裡。

Q2:簡單說,我想要知道如何設定我每一個的 ID 是什麼,好讓我可以傳出資料,也知道哪一個要去讀他
A2:設定自己的ID就是設定CAN RECEIVE BUFFER的FILTERS及MASKREGISTER。至於丟出什麼ID就不用再有FILTER的動作了。

發表於: 2008/1/25 11:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


關於 CAN BUS 的 ID 問題
#1
初級會員
初級會員


查看用戶資訊
我在網頁上看到一些範例程式 (我用的是 http://www.microchip.com.tw/modules/m ... nglefile.php?cid=6&lid=71 這個連結裡面的範例)
修改了一下配合我自己要的東西

我看到裡面有一些內建的 functions
CANSendMessage
CANReceiveMessage

裡面都有他的自己訂的指令

CANSendMessage( MESSAGE_ID1,TX_Data_Buf1,1,CAN_TX_PRIORITY_0 &
CAN_TX_STD_FRAME &
CAN_TX_NO_RTR_FRAME ) ;

CANReceiveMessage(&RX_ID1,RX_Data_Buf1,&RX_Data_Len1,&RX1_Message_Flag ) ;


上面我是有看到這樣的定義
unsigned char Var1,Var2 ;

unsigned long TX_ID1 ;
BYTE TX_Data_Buf1[8] ;

unsigned long RX_ID1 ;
BYTE RX_Data_Buf1[8] ;
BYTE RX_Data_Len1 ;
enum CAN_RX_MSG_FLAGS RX1_Message_Flag ;

unsigned long RX_ID2 ;
BYTE RX_Data_Buf2[8] ;
BYTE RX_Data_Len2 ;
enum CAN_RX_MSG_FLAGS RX2_Message_Flag ;



#define MESSAGE_ID1 0x200
#define RX_Filter0 0x200
#define RX_Filter1 0x000
#define RX_Filter2 0x00
#define RX_Filter3 0x00
#define RX_Filter4 0x00
#define RX_Filter5 0x00
#define RXB0_MASK 0x7ff // 0b111 1111 1100
#define RXB1_MASK 0x7ff


我想請問的是
我如何去設定現在我丟出去的 ID (就是要丟給誰)
我想這裡就是 MESSAGE_ID1 這一個,對不對? 這個 MESSAGE_ID1 是要寫我要傳給誰的 ID?

另外,我要怎麼設定自己這一個 PIC 的 ID 是什麼? 我以上都沒有看到 RX_ID1 的設定值。RX_ID1 應該就是我自己的 ID,只要我看到這樣的指令就代表我去讀接下來的資料。可是,哪裡有設定 RX_ID1?

還有,CANReceiveMessage(&RX_ID1,RX_Data_Buf1,&RX_Data_Len1,&RX1_Message_Flag ) ;
,在 RX_ID1 前面有一個 &,是什麼意思?

另外,MESSAGE_ID1 和 TX_ID1 是什麼差別?

簡單說,我想要知道如何設定我每一個的 ID 是什麼,好讓我可以傳出資料,也知道哪一個要去讀他

謝謝各位

發表於: 2008/1/24 18:12
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... ]

教育訓練中心

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