Exemple #1
0
void main(void)
{
	unsigned int u16RpmSpeed;
	char u8RpmSpeed;
	unsigned int u16adcVoltage;
	char u8adcVoltage;
	
	EnableInterrupts;
	SpeedManager_Init();
	DelayManager_Init();
	StepperMotor_Init();
	LcdManager_Init();
	
	sgu8OldSpeedLevel = 0;
	(void)DelayManager_SetDelayBySpeed(0);
	DelayManager_Delay();
	
	for(;;){
		sgu8SpeedLevel = SpeedManager_ReadSpeedLevel(&sgu8AdcValue);
		if(DelayManager_IsBusy() == 0)
		{
			StepperMotor_NextStep();
			sgu8Dir = StepperMotor_RefreshDirection();
			(void)DelayManager_SetDelayBySpeed(sgu8SpeedLevel);
			DelayManager_Delay();
		}
		
		LcdManager_UpdateTask();
		if((sgu8SpeedLevel != sgu8OldSpeedLevel) && (LcdManager_IsBusy() == 0))
		{
			//RPM Speed
			u16RpmSpeed = ((sgu8SpeedLevel+1)*11)+1;
			sgpu8_3bitLcdMsg[0] = (char)(u16RpmSpeed/100) + 0x30;
			u8RpmSpeed = (u16RpmSpeed%100);
			sgpu8_3bitLcdMsg[1] = u8RpmSpeed/10 + 0x30;
			sgpu8_3bitLcdMsg[2] = u8RpmSpeed%10 + 0x30;
			LcdManager_WriteString(1,0,sgpu8_3bitLcdMsg,3);
			
			//ADC value
			/*u16adcVoltage = ((129*sgu8AdcValue)/100);
			sgpu8_3bitLcdMsg[0] = (u16adcVoltage/100) + 0x30;
			u8adcVoltage = (u16adcVoltage%100);
			sgpu8_3bitLcdMsg[1] = u8adcVoltage/10 + 0x30;
			sgpu8_3bitLcdMsg[2] = u8adcVoltage%10 + 0x30;
			LcdManager_WriteString(1,4,sgpu8_3bitLcdMsg,3);*/
			
			sgu8OldSpeedLevel = sgu8SpeedLevel;
		}
		__RESET_WATCHDOG();
	}	
} 
int main(void)
{
	u8 Status_Flg = 0;

	Keypad_Init();
	LCD_Init();
	StepperMotor_Init();



	LCD_WriteCommand(0x80);
	LCD_WriteString("Motor Status:");

	while(1)
	{

		if( (Keypad_ReadButton(1) == 0) )
		{
			_delay_ms(150);
			Status_Flg = 1;
			LCD_WriteCommand(0xc0);
			LCD_WriteString("Right");
		}


		else if( (Keypad_ReadButton(2) == 0) )
		{
			_delay_ms(150);
			Status_Flg = 2;
			LCD_WriteCommand(0xc0);
		}


		else if( (Keypad_ReadButton(3) == 0) )
		{
			_delay_ms(150);
			Status_Flg = 3;
			LCD_WriteCommand(0xc0);
			LCD_WriteString("Brake");
		}

		if(Status_Flg == 1)
		{
			StepperMotor_Right();
		}

		else if(Status_Flg == 2)
		{
			StepperMotor_Left();
		}

		else if(Status_Flg == 3)
		{
			StepperMotor_Brake();
		}


	}

	return 0;
}