Re: dsPIC33 CAN bus疑問

作者 mathimport 於 2019年01月16日 16:15:08
已知0x18FF01F4 , 0x18FF24F4 , 0x18FF22F4......等18個
ID有其共通性,要如何用1個buffer和1個filter去抓這些ID,設定如下
C1RXM0EID=CAN_FILTERMASK2REG_EID0(0xFFFF);
C1RXM0SID=CAN_FILTERMASK2REG_EID1(0x1FFF);
C1RXF0EID=CAN_FILTERMASK2REG_EID0(0x0302); <-- 修改這裡
C1RXF0SID=CAN_FILTERMASK2REG_EID1(0x0000); <-- 修改這裡
C1RXF0SID=CAN_FILTERXTD(C1RXF0SID);
/*acceptance filter to use buffer 1 for incoming messages*/
C1BUFPNT1bits.F0BP=0b0001; <-- 指定buffer
C1FEN1bits.FLTEN0=1;

有嘗試過不同filter指定到相同buffer是抓不到數值。
要在不同buffer才能抓到直,如果用18個filter去分辨18個ID就需要18個buffer,但dspic33僅有8個buffer 但filter有15個,所以問題在於如何在有限的buffer內分辨18個ID?

謝謝Ryang回覆。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=2&topic_id=22530&post_id=79187