Цитата(SasaVitebsk @ Dec 23 2007, 11:36)

These bits are not cleared once the communication is performed. The user must rewrite the configuration to enable a new communication
Вольный перевод такой. Эти биты не очищаются после передачи пакета. Программа пользователя должна перезаписать конфигурацию для нового обмена.
Смысл тут такой, принят пакет в почтовый ящик, дальнейший приём запрещён, поскольку программа должна принятое прочитать, и после прочтения принять некое решение, скажем, разрешить приём нового пакета
Цитата(SasaVitebsk @ Dec 23 2007, 11:36)

А также вот такие выдержки из библиотек
Код
#define CONMOB_MSK ((1<<CONMOB1)|(1<<CONMOB0)) //! MaSK for CONfiguration MOb
#define DISABLE_MOB ( CANCDMOB &= (~CONMOB_MSK) )
#define Can_config_rx()
{
DISABLE_MOB; CANCDMOB |= (MOB_Rx_ENA << CONMOB);
}
Первые две строчки можно заменить одной
#define DISABLE_MOB (CANCDMOB=(0<<CONMOB1)|(0<<CONMOB0)) или по-рабоче-крестьянски CANCDMOB=0х08
В последней запрещается ящик, затем реконфигурируется, MOB_Rx_ENA=10 – разрешить приём
Цитата(SasaVitebsk @ Dec 23 2007, 11:36)

GM прокомментируй пожалуйста. Я так понял, что мне в прерывании надо каждый раз обязательно делать Can_config_rx() или я неверно перевёл? Мой английский хромает на все 5 ног
Ну да, надо показать кан-модулю, что пакет считан, можно принимать дальше, для этого надо переписать биты <7-6> регистра CANCDMOB, а также поля IDE и DLC, которые заменяются принятыми битами. По-моему, проще написать CANCDMOB=0х88, да и всё, чем писать побитно.
Логика в запрещении приёма есть, поскольку, если не запрещать приём, то пакет может быть переписан и, следовательно, потерян, зачем тогда его было вообще передавать?