a.dav пишет:Нарисовал близкую к финальной диаграмму. Прошу оценить.
В общем, ошибок не обнаружено, все должно корректно работать.
Нет смысла находить среднее арифметическое показаний скорости, достаточно использовать какое-либо одно показание, т.к. разница между ними не превышает 0,5км/ч, что не является принципиальным - погрешность показаний спидометра больше (графики скоростей по разным показаниям во вложении).
a.dav пишет:1. Как организовать спящий режим при отсутствии, и пробуждение при наличии +5в (лог.1) на входе 2?
При том, что по CAN есть непрерывный обмен.
На практике, когда CAN не спит, нет особого смысла переводить контроллер в спящий режим, т.к. его потребление на фоне остальных устройств и систем незначительно.
Организовать такое решение на CANNY7 возможно, но задача достаточно нетривиальная: требовалось бы менять конфигурацию драйвера CAN, что в свою очередь влечет автоматическую перезагрузку контроллера.
Нужно исходить из целесообразности данного решения. Возможно просто следует использовать управляющий сигнал с входа №2 для активации работы алгоритма, а в сон уходить при отсутствии активности CAN - когда и автомобиль спит.
a.dav пишет:2. Как организовать в спящем режиме периодическое моргание красного светодиода (например 1 раз в несколько секунд).
Находясь в режиме пониженного энергопотребления контроллер периодически просыпается на 1 проход диаграммы. Это можно использовать для моргания красным светодиодом (вариант решения - см.вложение: используя особенности режима сна, светодиод будет включаться 1 раз в 2 секунды на 1 секунду).
Также следует подумать о целесообразности применения такой индикации. Можно индицировать рабочий режим, а в режиме сна - выключать светодиод вообще.
Более подробная информация о режиме сна доступна в Wiki.
a.dav пишет:3. Как организовать оптимальней выдачу в строку через UART информации о включении/выключении насоса/вентиллятора например символом "*", или строкой "ON" ?
Это делается аналогично выводу строки с температурой датчиков. Нужно определиться с форматом строки вывода (что должно выводиться и в каком виде), помня при этом что на один проход диаграммы в UART может быть отправлено не более 16 байт. Можно отправлять и более длинные строки, но за несколько проходов диаграммы.
Вложений в сообщении
sleep_blink.png 17.3 кб, скачивался 335 раз, последний раз 2016-07-18
volvo_speed.png 40.23 кб, скачивался 193 раз, последний раз 2016-07-18