void initializeUsb(UsbDevice* usbDevice) { initializeUsbCommon(usbDevice); usbDevice->device = USBDevice(usbCallback); usbDevice->device.InitializeSystem(false); setGpioDirection(0, USB_VBUS_ANALOG_INPUT, GPIO_DIRECTION_INPUT); debug("Done."); }
int usermain(void) { setGpioDirection(GPIO0_7,GPIO_OUT); //led // Initialize uart0 and set debugger interface initUART0(); setDebugInterface(sendByteToUART0); debugPrintf("lpc13xx is running !\r\n"); // Power down usb clock SETBIT(LPC_SYSCON->PDRUNCFG,10); SETBIT(LPC_SYSCON->PDRUNCFG,8); newThread(led,512,10,5); // newThread(PRS_I2CComm,512,10,4); return 0; }
UInt8 initSensorPRS(SensorType mtype, GPIO_PIN pin) { //UInt8 * i2caddrbuffer; UInt8 i2caddrbuffer[3]; UInt8 replybuffer[3]; //UInt8 * checkbuffer; UInt8 checkbuffer[8]; UInt8 repcheckbuffer[8]; UInt32 i = 0; UInt32 i2cdatalength; UInt8 i2caddr = DEFAULT_ADDR; replybuffer[0] = I2C_ACK_HEADER; replybuffer[1] = mtype; replybuffer[2] = mtype; setGpioDirection(pin,GPIO_IN); TRACE_PRS(("InitSensorPRS: waiting for high pin state\r\n")); while(getGpioValue(pin)==0); TRACE_PRS(("InitSensorPRS: waiting for low pin state\r\n")); while(getGpioValue(pin)==1); TRACE_PRS(("InitSensorPRS: Init i2c slave to %x\r\n", DEFAULT_ADDR)); initSlaveI2C0(DEFAULT_ADDR, I2C_400_KHZ); TRACE_PRS(("InitSensorPRS: waiting for addr packet\r\n")); i2cdatalength=getBufferFromMasterI2C0(i2caddrbuffer, 3); TRACE_PRS(("InitSensorPRS: i2cdatalength = %x\r\n", i2cdatalength)); if(i2cdatalength == 3) { //DebugPrintf("i2caddrbuffer[1] = %x\r\n", i2caddrbuffer[1]); if(i2caddrbuffer[0] == PK_HEADER) { //DebugPrintf("[0] = PK_HEADER\r\n"); if(i2caddrbuffer[1] == i2caddrbuffer[2] ) { //DebugPrintf("[1] = [2]\r\n"); i2caddr = i2caddrbuffer[1]; TRACE_PRS(("new addr = 0x%x\r\n", i2caddr)); initSlaveI2C0(i2caddr, I2C_400_KHZ); //DebugPrintf("sending ack packet\r\n"); setBufferToMasterI2C0(replybuffer, 3); i2cdatalength = getBufferFromMasterI2C0(checkbuffer, 8); if(i2cdatalength == 8) { //DebugPrintf("return 8 test bytes to master\r\n"); for(i=0;i<8;i++) { repcheckbuffer[i] = checkbuffer[i]; } setBufferToMasterI2C0(repcheckbuffer, 8); TRACE_PRS(("[END] - new addr is 0x%x\r\n", i2caddr)); return i2caddr; }//if(i2cdatalength == 8) }//if(i2caddrbuffer[1] == i2caddrbuffer[2] ) }//if(i2caddrbuffer[0] == PK_HEADER) }//if(i2cdatalength == 3) TRACE_PRS(("InitSensorPRS failed !\r\n")); //if error, halt i2c haltSlaveI2C0(); return 0; }