void configPinMode(BYTE pin,BYTE mode,BYTE tris,BYTE io){ ClearPinState(pin); SetPinTris(pin,tris); SetDIO(pin,io); getBcsIoDataTable()[pin].PIN.currentChannelMode = mode; EEWriteMode(pin,mode); }
void InitServo(uint8_t PIN){ //println_I("Starting servo"); ClearPinState(PIN); SetPinTris(PIN,OUTPUT); //DATA.PIN[PIN].State=IS_SERVO; SetServoPos(PIN,EEReadValue(PIN),0); if( servoEngineStarted != true){ servoEngineStarted =true; startServoLoops(); } }
void ClearPinState(BYTE pin){ BYTE current = GetChannelMode(pin); ClearPWM(pin); ClearADC(pin); ClearDCMotor(pin); if ( (current >= IS_SPI_MOSI)&&(current <= IS_SPI_SCK)){ EEWriteMode(0,IS_DI); EEWriteMode(1,IS_DI); EEWriteMode(2,IS_DI); EEWriteMode(3,IS_DI); } if ((current == IS_UART_TX)||(current == IS_UART_RX)){ StopUartPassThrough(pin); EEWriteMode(16,IS_DI); EEWriteMode(17,IS_DI); } SetPinTris(pin,INPUT); }
void InitPinModes(void){ BYTE i; BYTE mode=0; for (i=0;i<24;i++){ //ClearPinState(i); SetPinTris(i,INPUT); SetDIO(i,0); SetPWM(i,EEReadValue(i)); SetServoPos(i,EEReadValue(i),0); //getBcsIoDataTable()[i].PIN.previousChannelMode=NO_CHANGE; mode=EEReadMode(i); if((mode < 2)||(mode >=IO_MODE_MAX)){ EEWriteMode(i,IS_DI); mode = EEReadMode(i); } getBcsIoDataTable()[i].PIN.currentChannelMode = mode; setMode(i,EEReadMode(i)); } startup = FALSE; //printModes(); }