void mcp_init(){ deselectChip(); SPI_MasterTransmit(MCP_RESET); //setLoopbackOperationalMode(); setOperationModeNormal(); mcp_write(MCP_CANINTE, MCP_RX_INT); mcp_bit_modify_instruction(MCP_RXB0CTRL, 0b01100000, 0xFF); }
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; }
void mcp_clear_interrupt(){ mcp_write(MCP_CANINTF, 0x00); //TODO needs to be fixed, can't clear all interrupts. }