Example #1
0
int main(int argc, char **argv)

{
   if (argc == 1) {
     printf("%s <команда>\nin -чтение данных из порта,установленых на ввод\nout-установка состояния порта,установленного на вывод.\n", argv[0]);
     return 1;
   } 
   else if (argc == 2) {
  if(strcmp(argv[1], "out") == 0) mcp_state_out();
  else if(strcmp(argv[1], "in") == 0) mcp_state_in();
  else printf("Нет такой команды\n");
  return 1;
   }
   
   if(strcmp(argv[1], "out") == 0) {
   
        if (argc != 4) {
             printf("Настройка порта: %s <порт> <состояние>\n", argv[0]);

return 1;
}
int mcppin = atoi(argv[2]);
int mcpst = atoi(argv[3]);

mcp_write (mcppin,mcpst);
     
     
   }
   else if(strcmp(argv[1], "in")== 0) {
   if (argc != 3) {
             printf("Чтение одного порта: %s <порт>\n", argv[0]);
     mcp_state_in();
     return 1;
   }
   int mcppin = atoi(argv[2]);

   printf ("%d\n",mcp_read (mcppin));
   
   }





   return 0;
}
Example #2
0
/****************************************************************************
* \brief Initialize communication with CAN controller
*
* \return SUCESS/FAILURE
****************************************************************************/
uint8_t mcp_init()
{
	uint8_t tmp;
	
	SPI_init();
	mcp_reset();
	
	tmp = mcp_read(MCP_CANSTAT);
	
	if ((tmp & MODE_MASK) != MODE_CONFIG)
	{
		printf("MCP2515 NOT configured properly\n");
		return 1;
	}
	
	return 0;
}
Example #3
0
int mcp_ready_to_send(int reg){
	char rtsreg = 0x00;
	switch(reg){
		case 0:
			rtsreg = TXB0CTRL;
			break;
		case 1:
			rtsreg = TXB1CTRL;
			break;
		case 2:
			rtsreg = TXB2CTRL;
			break;
		default:
			return -1;
	}
	uint8_t status = mcp_read(rtsreg);
	if((status & 0b00001000) == 8){
		return 0;
	}
	else{
		return 1;
	}
	
}