Hallo,
ich versuche vergeblich den Message-Filter am SAM7 abzustellen.
Ich nutze die CAN-Lib vom ASF-Wizard.
Das Demo dazu habe ich von hier :
https://github.com/avrxml/asf/blob/master/sam0/drivers/can/quick_start/qs_can_basic.c
Derzeit können Nachrichten gesendet werden, es werden aber nur die
gefilterten empfangen ( MCAN_RX_STANDARD_FILTER_ID_0 )
Wenn ich "mcan_set_standard_filter_0" nicht aufrufe, kommen gar keine
Nachrichten.
Ich habe auch schon mit den globalen Filtern (GFC) und (SIDFC)
experimentiert, aber leider ohne Erfolg...
Kennt sich jemand damit etwas genauer aus ?
1 | void mcan_set_standard_filter_0(void)
|
2 | {
|
3 | struct mcan_standard_message_filter_element sd_filter;
|
4 |
|
5 | mcan_get_standard_message_filter_element_default(&sd_filter);
|
6 | sd_filter.S0.bit.SFID2 = MCAN_RX_STANDARD_FILTER_ID_0_BUFFER_INDEX;
|
7 | sd_filter.S0.bit.SFID1 = MCAN_RX_STANDARD_FILTER_ID_0;
|
8 | sd_filter.S0.bit.SFEC = MCAN_STANDARD_MESSAGE_FILTER_ELEMENT_S0_SFEC_STRXBUF_Val;
|
9 | sd_filter.S0.bit.SFT = MCAN_STANDARD_MESSAGE_FILTER_ELEMENT_S0_SFT_CLASSIC;
|
10 |
|
11 | mcan_set_rx_standand_filter(&mcan_instance, &sd_filter, MCAN_RX_STANDARD_FILTER_INDEX_0);
|
12 | mcan_enable_interrupt(&mcan_instance, MCAN_RX_BUFFER_NEW_MESSAGE);
|
13 | }
|