void close_ifport () { BYTE spicmd[2] = {FLAG, SPI_DISABLE}; switch (PortType) { case TY_COMM : _outp(COM_MCR, 0); _outp(COM_LCR, 3); break; case TY_VCOM : break; case TY_BRIDGE : send_bridge(spicmd, 2); read_bridge(spicmd, 1); break; case TY_AVRSP : _outp(LPT_DAT, 0); break; case TY_STK200 : _outp(LPT_DAT, BS_DIS); break; case TY_XILINX : _outp(LPT_DAT, BX_DIS1|BX_DIS2); break; case TY_LATTICE : _outp(LPT_DAT, BL_DIS); break; case TY_ALTERA : _outp(LPT_CTL, 0); break; #if AVRSPX case TY_USBASP : //@@@ by t.k usbasp_close(); break; case TY_HIDASP : //@@@ by k-k hidasp_close(); break; case TY_RSCR : //@@@ by t.k if (hComm != INVALID_HANDLE_VALUE) rscr_close(); break; #endif } if(hComm != INVALID_HANDLE_VALUE) CloseHandle(hComm); PortType = 0; }
//---------------------------------------------------------------------------- int usbasp_write_serial(char *SerialNumber, char *NewSerialNumber) { int ret; if (usbasp_open(SerialNumber) != 0) { fprintf(stderr, "USBasp serial number set [%s] to [%s].\n", SerialNumber, NewSerialNumber); return RC_FAIL; } ret = usbasp_set_serial(NewSerialNumber); usbasp_close(); if (ret == 0) { fprintf(stderr, "USBasp serial number set to [%s].\n", NewSerialNumber); return 0; } return RC_FAIL; }