コード例 #1
0
void Commands_SetPinConfig(uint8_t* data)
{
	switch (data[1])
	{
		case MakeDigitalInput:
			GPIO_SetInput(data[0], data[2]);
			pinConfigs[data[0]] = DigitalInput;
			break;
		case MakeDigitalOutput:
			GPIO_SetOutput(data[0]);
			pinConfigs[data[0]] = DigitalOutput;
			break;
		case SetDigitalValue:
			GPIO_WriteValue(data[0], data[2]);
			break;
		case MakeAnalogInput:
			ADC_SetInput(data[0]);
			pinConfigs[data[0]] = AnalogInput;
			break;
		case MakePWMPin:
			PWM_SetOutput(data[0], data[2]);
			break;
		case SetPWMValue:
			PWM_SetValue(data[0], data[2], data[3]);
			break;


	}
}
コード例 #2
0
void SPI_SetConfig(SpiConfigData_t* config)
{
	uint8_t spiMode;
	csPin = config->CsPin;
	csPolarity = config->CsPolarity;
	switch(config->SpiMode)
	{
	case 0:
		spiMode = SPI0_CLKMODE_0;
		break;
	case 1:
		spiMode = SPI0_CLKMODE_1;
		break;
	case 2:
		spiMode = SPI0_CLKMODE_2;
		break;
	case 3:
		spiMode = SPI0_CLKMODE_3;
		break;
	}

	if(config->IsEnabled)
	{
		SFRPAGE = 0x20;
		SPI0CKR = config->CkrVal;
		SPI0_init(spiMode, true, false);
		SPI_Enable();
		if(csPin != 0)
		{
			GPIO_MakeOutput(csPin, PushPullOutput);
			GPIO_WriteValue(csPin, !csPolarity);
		}

	}
	else
		SPI_Disable();

}
コード例 #3
0
void SPI_DeactivateCs()
{
	if(csPin != 0)
		GPIO_WriteValue(csPin, !csPolarity);
}