/** * \brief Function for show the extension boards information * */ static void show_extension_boards_information(void) { uint8_t request_token = EDBG_EXTEN_BOARDS_TOKEN; uint32_t timeout = 0; uint8_t board_num = 0; uint8_t i,j; /** Send the request token */ master_packet.address = EDBG_ADDRESS; master_packet.data_length = 1; master_packet.data = &request_token; master_packet.ten_bit_address = false; master_packet.high_speed = false; master_packet.hs_master_code = 0x0; while (i2c_master_write_packet_wait_no_stop(&i2c_master_instance, &master_packet) != STATUS_OK) { /* Increment timeout counter and check if timed out. */ if (timeout++ == TIMEOUT) { return; } } /** Get the extension boards info */ master_packet.data_length = 1024; master_packet.data = read_buffer; while (i2c_master_read_packet_wait(&i2c_master_instance, &master_packet) != STATUS_OK) { /* Increment timeout counter and check if timed out. */ if (timeout++ == TIMEOUT) { return; } } /** Check and show info */ extension_map[0] = read_buffer[0]; extension_map[1] = read_buffer[1]; for (i = 0; i < 2; i++) { for (j = 1; j <= 8; j++) { if (extension_map[1 - i] & 0x01) { /** show extension board info */ printf("\r\n Extension board %d detected \r\n", (i * 8) + j); decode_board_info(&read_buffer[2 + 64 * board_num]); board_num++; } extension_map[1 - i] = extension_map[1 - i] >> 1; } } }
/** * \brief Function for show the extension boards information * */ static void show_extension_boards_information(void) { uint8_t request_token = EDBG_EXTEN_BOARDS_TOKEN; uint32_t timeout = 0; uint8_t board_num = 0; uint8_t i,j; /** Get the extension boards info */ packet_rx.chip = EDBG_ADDRESS; packet_rx.addr_length = 1; packet_rx.addr[0] = request_token; packet_rx.buffer = read_buffer; packet_rx.length = 1024; while (twi_master_read(EDBG_I2C_MODULE, &packet_rx) != TWI_SUCCESS) { /* Increment timeout counter and check if timed out. */ if (timeout++ == TIMEOUT) { return; } } /** Check and show info */ extension_map[0] = read_buffer[0]; extension_map[1] = read_buffer[1]; for (i = 0; i < 2; i++) { for (j = 1; j <= 8; j++) { if (extension_map[1 - i] & 0x01) { /** show extension board info */ printf("\r\n Extension board %d detected \r\n", (i * 8) + j); decode_board_info(&read_buffer[2 + 64 * board_num]); board_num++; } extension_map[1 - i] = extension_map[1 - i] >> 1; } } }