/* Телеметрия eCAN и фоновая выдача ответов логгера. * UMP_CAN_service вызывается из main, не из приёмного IRQ. */ void InitCan(int Port, int DevNum); int CAN_send(int Port, int data[], int Addr); /* 0: занят, 1: кадр поставлен, 2: подтверждённые данные не изменились и 1,3 с ещё не прошли. */ void CAN_heartbeat_service(void); /* Планирует отдельный heartbeat по Timer1 с периодом одна секунда. */ void CAN_telemetry_service(void); /* В main обслуживает heartbeat, изменения данных и повтор каждого разрешённого пакета через 1,3 с. */ extern int CAN_input_data[]; /* Неблокирующая передача ответов логгера отдельным CAN mailbox. */ void UMP_CAN_service(void);