СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-7

ПРАКТИЧЕСКАЯ ЭЛЕКТРОНИКА 45 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2011 Таблица 5. Описание функции CANSetOperationMode Прототип void CANSetOperationMode(unsigned short mode, unsigned short wait_flag); Возвращаемое значение Нет Описание Устанавливает требуемый режим работы CAN, т.е. копирует аргумент mode в CANSTAT. Аргумент mode должен быть одной из констант CAN_OP_MODE (см. константы CAN) Аргумент wait_flag должен имеет значение 0 или 0xFF: • задание значения 0xFF означает блокирующий вызов функции, т.е. функция не завершает работу до тех пор, пока требуемый режим не будет установлен; • задание значения 0 означает деблокирующий вызов функции, т.е. функция завершается без проверки, переключился ли модуль в необходимый режим или нет. Вызывающая программа перед тем, как выполнить определённую операцию, должна использовать вызов CANGetOperationMode, чтобы убедиться, что модуль работает в необходимом режиме Требования Микроконтроллер должен быть подключен к CAN-трансиверу (например, MCP2551 или подобному), который соединён с шиной CAN Пример CANSetOperationMode(CAN_MODE_CONFIG, 0xFF); Таблица 7. Описание функции CANInitialize Таблица 6. Описание функции CANGetOperationMode Прототип unsigned short CANGetOperationMode(void); Возвращаемое значение Текущий режим работы Описание Функция возвращает текущий режим работы модуля CAN Требования Микроконтроллер должен быть подключен к CAN-трансиверу (MCP2551 или подобному), который соединён с шиной CAN Пример if (CANGetOperationMode() == CAN_MODE_NORMAL) { ... }; Прототип void CANInitialize(unsigned short SJW, unsigned short BRP, unsigned short PHSEG1, unsigned short PHSEG2, unsigned short PROPSEG, unsigned short CAN_CONFIG_FLAGS); Возвращаемое значение Нет Описание Инициализирует интерфейс CAN. Все незавершённые передачи отменяются. Все регистры масок устанавливаются в 0 для разрешения всех сообщений. При выполнении функции устанавливается режим конфигурирования. По окончании выполнения данной функции устанавливается нормальный режим Регистры фильтров устанавливаются в соответствии со значениями флагов: if (CAN_CONFIG_FLAGS & CAN_CONFIG_VALID_XTD_MSG != 0) // Установить все фильтры в XTD_MSG else if (config & CONFIG_VALID_STD_MSG != 0) // Установить все фильтры в STD_MSG else // Установить половину фильтров в STD, а остальные в XTD_MSG Аргументы: SJW, BRP, PHSEG1, PHSEG2 и PROPSEG, как определено в описании PIC-микроконтроллеров семейства P18XXX8 CAN_CONFIG_FLAGS, формируются из предопределённых констант (см. константы CAN) Требования Микроконтроллер должен быть подключен к CAN-трансиверу (MCP2551 или подобному), который соединён с шиной CAN Пример init = CAN_CONFIG_SAMPLE_THRICE & CAN_CONFIG_PHSEG2_PRG_ON & CAN_CONFIG_STD_MSG & CAN_CONFIG_DBL_BUFFER_ON & CAN_CONFIG_VALID_XTD_MSG & CAN_CONFIG_LINE_FILTER_OFF; // инициализация CAN7 CANInitialize(1, 1, 3, 3, 1, init); Таблица 8. Описание функции CANSetBaudRate Прототип void CANSetBaudRate(unsigned short SJW, unsigned short BRP, unsigned short PHSEG1, unsigned short PHSEG2, unsigned short PROPSEG, unsigned short CAN_CONFIG_FLAGS); Возвращаемое значение Нет Описание Устанавливает скорость обмена в сети CAN. Ввиду сложности протокола CAN, нельзя принудительно установить значение скорости. Вместо этого следует использовать данную функцию, когда CAN находится в режиме конфигурирования. Подробнее см. описание Аргументы: SJW, BRP, PHSEG1, PHSEG2 и PROPSEG, как определено в описании PIC-микроконтроллеров семейства P18XXX8 CAN_CONFIG_FLAGS, формируются из предопределённых констант (см. константы CAN) Требования Интерфейс CAN должен быть в режиме конфигурирования, в противном случае функция будет игнорироваться Микроконтроллер должен быть подключен к CAN-трансиверу (MCP2551 или подобному), который соединён с шиной CAN Пример init = CAN_CONFIG_SAMPLE_THRICE & CAN_CONFIG_PHSEG2_PRG_ON & CAN_CONFIG_STD_MSG & CAN_CONFIG_DBL_BUFFER_ON & CAN_CONFIG_VALID_XTD_MSG & CAN_CONFIG_LINE_FILTER_OFF; ... CANSetBaudRate(1, 1, 3, 3, 1, init); © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy