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);
}
Пример #2
0
uint8_t pinOn(uint8_t pin){
	if(pinServoOk(pin) ==true){
		SetDIO(pin,ON);
		return 1;
	}
	return 0;
}
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();
}
BOOL SetChanVal(BYTE pin,INT32 bval, float time){
	BYTE mode = GetChannelMode(pin);
	//println_I("Setting channel pos\n\tchan: ");p_int_I(pin);print_I(" \n\tto val: ");p_int_I(bval);print_I("\n\tin time: ");p_fl_I(time);
	switch (mode){
	case IS_DI:
	case IS_DO:
		SetDIO(pin,bval);
		break;
	case IS_SERVO:
		SetServoPos(pin,bval,time);
		break;
	case IS_PWM:
		SetPWM(pin,bval);
		break;
	case IS_DC_MOTOR_VEL:
	case IS_DC_MOTOR_DIR:
		SetDCMotor(pin,bval);
		break;
	default:
		return FALSE;
	}
	return TRUE;
}
Пример #5
0
void pinOff(uint8_t pin){
    SetDIO(pin,0);
}
Пример #6
0
uint8_t pinOn(uint8_t pin){
    SetDIO(pin,1);
    return 1;
}
Пример #7
0
void pinOff(uint8_t pin){
	if(pinServoOk(pin) ==true){
		SetDIO(pin,OFF);
	}
}