-
- Вы наверное имели в виду ATmega32M1 ? - sherr(15.01.2015 19:44)
- нет. AT90CAN32 - Ljutik1(15.01.2015 20:26)
- А что такое CANPAGE = 0<<4; ? - Petrovich(15.01.2015 12:30, )
- ну, это по аналогии с другими МОБами написано. Там их 4 штуки - я не стал все выкладывать - Ljutik1(15.01.2015 12:42)
- Это ж просто обнуление? - Petrovich(15.01.2015 14:02, )
- Имхо, судя по транскрипции, ему хотелось обнулить только бит) - Олдфаг(15.01.2015 20:10, )
- Это ж просто обнуление? - Petrovich(15.01.2015 14:02, )
- ну, это по аналогии с другими МОБами написано. Там их 4 штуки - я не стал все выкладывать - Ljutik1(15.01.2015 12:42)
- а почиму if ((temp_f & 0b1)!=0) - это MOB 0 ? разве не if ((temp_f & 1)!=0) - Nikolay801_(15.01.2015 12:02)
- а чем отличается 0b1 и 1 - разьве не одно и тоже? - Ljutik1(15.01.2015 12:04)
- мне показалось что это 0xb1, привык к шестнадцатеричной кодировке - Nikolay801_(15.01.2015 12:10)
- а чем отличается 0b1 и 1 - разьве не одно и тоже? - Ljutik1(15.01.2015 12:04)
- Возможно у ты не успеваешь сконфигурировать моб к приему следующего сообщения, попробуй использовать двойную буферизацию, сконфигурируй 2 моба на прием. - Nikolay801_(15.01.2015 11:31)
- Я правильно понимаю, если во время обработки прерывания от одного MOБа появятся данные во втором, то прерывание от второго не возникнет? - Ljutik1(15.01.2015 11:41)
- выходи из прерывания если оба моба не запрашивают прерывания. Будет ацкий трешь - цикл в прерывании. - Nikolay801_(15.01.2015 11:51)
- Не, похоже не в этом дело. Ljutik1(243 знак., 15.01.2015 11:58)
- может все таки басофф, ошибки есть? - Nikolay801_(15.01.2015 12:15)
- неа, флаг смотрю - Ljutik1(15.01.2015 12:20)
- может все таки басофф, ошибки есть? - Nikolay801_(15.01.2015 12:15)
- Не, похоже не в этом дело. Ljutik1(243 знак., 15.01.2015 11:58)
- Не возникнет - при возникновении прерывания флаг Global interrupt enable в регистре SREG сбрасывается аппаратно и востанавливается при выполнении команды reti (возврат из прерывания). - Apтём(15.01.2015 11:45)
- Не, не в этом дело. Ljutik1(129 знак., 15.01.2015 11:54)
- Проверяли - флаги действительно сбрасываются? Обычно для сброса флага прерывания нужно записать в него 1 - maik-vs(15.01.2015 14:05)
- Не тот случай - Apтём(115 знак., 15.01.2015 14:08)
- Проверяли - флаги действительно сбрасываются? Обычно для сброса флага прерывания нужно записать в него 1 - maik-vs(15.01.2015 14:05)
- Не, не в этом дело. Ljutik1(129 знак., 15.01.2015 11:54)
- выходи из прерывания если оба моба не запрашивают прерывания. Будет ацкий трешь - цикл в прерывании. - Nikolay801_(15.01.2015 11:51)
- Два МОБа с одинаковыми ID? У меня в реалии используются 4 МОБа для приема данных от 4-х разных устройств - Ljutik1(15.01.2015 11:37)
- Я правильно понимаю, если во время обработки прерывания от одного MOБа появятся данные во втором, то прерывание от второго не возникнет? - Ljutik1(15.01.2015 11:41)
- у тебя в обработчике есть запрет прерывания, а разрешения нет, где оно? Возможно прерывание срабатывает по фронту, если ты разрешаешь прерывания когда флаг уже установлен, то обработчик прерывания не вызывается. - Nikolay801_(15.01.2015 11:24)
- О, интересная мысль! Надо перед разрешением прерываний флаги сбрасывать. - Ljutik1(15.01.2015 11:27)
- зачем его вообще запрещать, у авр вложенные прерывания не работают. - Nikolay801_(15.01.2015 11:34)
- Работают, если разрешить. Apтём(280 знак., 15.01.2015 11:40)
- не получится для вложенных нужно GIE разрешить, периферийные енаблы здесь не помогут - Nikolay801_(15.01.2015 11:49)
- Конечно нужно разрешить - но это же не сложно. Apтём(44 знак., 15.01.2015 11:54)
- мне так нагляднее. - Ljutik1(15.01.2015 11:41)
- Ну, на вкус и цвет... - Apтём(15.01.2015 11:46)
- не получится для вложенных нужно GIE разрешить, периферийные енаблы здесь не помогут - Nikolay801_(15.01.2015 11:49)
- Работают, если разрешить. Apтём(280 знак., 15.01.2015 11:40)
- зачем его вообще запрещать, у авр вложенные прерывания не работают. - Nikolay801_(15.01.2015 11:34)
- вот оно: CANGIE=0b10100000; - Ljutik1(15.01.2015 11:25)
- О, интересная мысль! Надо перед разрешением прерываний флаги сбрасывать. - Ljutik1(15.01.2015 11:27)
- busoff там точно не возникает из-за ошибок? - Nikolay801_(14.01.2015 17:24)
- Портится значение регистра CANEN2. Обнуляются соответствующие биты. Естественно, как только я прописываю CANCDMOB - они восстанавливаются. Ljutik1(32 знак., 14.01.2015 19:50)
- Интересный момент - при возникновении ошибки в регистре CANCDMOB появляется значение 0х98. Тоесть DLC = 8. Ljutik1(74 знак., 14.01.2015 19:34)
- Включил прерывания по BUSOFF и прочим ошибкам. Эффекта не пронаблюдал. Ljutik1(135 знак., 14.01.2015 19:22)
- У меня прерывания по BUSOFF отключены - Ljutik1(14.01.2015 17:53)
- оно само по себе отключает от шины, а прерывание только уведомляет о том что произошло отключение. - Nikolay801_(14.01.2015 17:55)
- Я проавильно понимаю, что в случае возникновения BUSOFF изменится содержимое регистра CANCDMOB ? Только вот не пойму, - для конкретного MOb или для всех сразу? - Ljutik1(14.01.2015 17:52)
- должен быть общий. - Nikolay801_(14.01.2015 17:56)
- незнаю. Может и возникает. Не могу осознать, как полечить?! - Ljutik1(14.01.2015 17:49)
- Вы наверное имели в виду ATmega32M1 ? - sherr(15.01.2015 19:44)