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; }