/** * @brief Main program. * @param None * @retval None */ void main(void) { /* CLK configuration -------------------------------------------*/ CLK_Config(); /* Init TIM2 to generate 1 ms time base update interrupt */ TimingDelay_Init(); /* Enable Interrupts */ enableInterrupts(); /* 1s delay to ensure proper LCD Init*/ Delay(1000); /* Init the Eval board LCD */ STM8_EVAL_LCD_Init(); /* Clear LCD */ LCD_Clear(); /* print "Pot ADC Voltage" on LCD line1*/ LCD_SetCursorPos(LCD_LINE1, 0); LCD_Print("Pot ADC Voltage"); /* ADC configuration -------------------------------------------*/ ADC_Config(); /* Infinite loop*/ while (1) { /* Calculate voltage value*/ PotVoltage = (uint16_t)((uint32_t)((uint32_t)ADCdata * (uint32_t)ADC_RATIO) / (uint32_t)1000); /* Display voltage value on LCD*/ ShowVoltage((uint16_t)PotVoltage); } }
void main(void) { signed char ret = 0; signed char lastMenu = 0; char pnum = 0; SetupIO(); MOTOR_FORWARD = 0; MOTOR_REVERSE = 0; Move_shifted_position.ul = 0; Move_position[0].ul = 0; Move_position[1].ul = 0; //PID_SetPoint = 0; char idx; for (idx = 0; idx < 16; idx++) RotaryDetentIntervals[idx] = 0xFF; LoadSettings(); //FactoryDefault(); SetupHardware(); LCD_PowerUp(); LCD_ClearDisplay(); LCD_PrintString("CINEFLUX ORBIT\0"); LCD_SetPosition(1, 0); LCD_PrintString(VER); Wait_ms(2000); const char *COMMAND_0 = "ORBIT MODE\0"; const char *COMMAND_1 = "WAYPOINT MODE\0"; const char *COMMAND_3 = "RUN PRESET\0"; const char *COMMAND_2 = "REALTIME MODE\0"; const char *COMMAND_4 = "BATTERY VOLTAGE\0"; const char *COMMAND_5 = "GO TO SLEEP\0"; const char *COMMAND_6 = "EXTERNAL CTRL MODE\0"; const char*CommandMenu[7]; CommandMenu[0] = COMMAND_0; CommandMenu[1] = COMMAND_1; CommandMenu[2] = COMMAND_2; CommandMenu[3] = COMMAND_3; CommandMenu[4] = COMMAND_4; CommandMenu[5] = COMMAND_5; CommandMenu[6] = COMMAND_6; bFollowMode = 1; LCD_ClearDisplay(); LCD_PrintString("MOVE TO ZERO DEGREES\0"); LCD_SetPosition(1, 0); LCD_PrintString("THEN CLICK...\0"); GetClick(); bClear_MotorPosition = 1; while (bClear_MotorPosition) Idle(); Wait_ms(10); bFollowMode = 0; LCD_ClearDisplay(); while (1) { UI_Location = UI_LOC_MAINMENU; ret = DisplayMenu(CommandMenu, 6, lastMenu); labelProcessCommand: switch (ret) { case 0: case USER_INPUT_MACRO_ORBITMODE: lastMenu = 0; ret = CreateOrbitProgram(); if (ret == -2) RealtimeMode(); if (ret == -1) RealtimeMode(); if (ret<-2) goto labelProcessCommand; break; case 1: case USER_INPUT_MACRO_WAYMODE: lastMenu = 1; ret = CreateWaypointProgram(); if (ret<-2) goto labelProcessCommand; if (ret < 0) { ret = RealtimeMode(); if (ret<-2) goto labelProcessCommand; } break; case 3: lastMenu = 3; ret = GetPresetNumber(); if (ret == -1) break; if (ret == -2) break; if (ret<-2) goto labelProcessCommand; pnum = ret; ret = RunPreset(pnum); if (ret<-2) goto labelProcessCommand; break; case 2: case USER_INPUT_MACRO_REALMODE: lastMenu = 0; ret = RealtimeMode(); if (ret<-2) goto labelProcessCommand; break; case 4: lastMenu = 0; ret = ShowVoltage(); if (ret<-2) goto labelProcessCommand; break; case 5: case USER_INPUT_MACRO_SLEEP: lastMenu = 0; GoToSleep(); break; case 6: case USER_INPUT_MACRO_EXTMODE: lastMenu = 0; ret = ExtMode(); if (ret<-2) goto labelProcessCommand; break; case USER_INPUT_MACRO_RUNPRESET0: ret = RunPreset(1); if (ret<-2) goto labelProcessCommand; break; case USER_INPUT_MACRO_RUNPRESET1: ret = RunPreset(2); if (ret<-2) goto labelProcessCommand; break; case USER_INPUT_MACRO_RUNPRESET2: ret = RunPreset(3); if (ret<-2) goto labelProcessCommand; break; case USER_INPUT_MACRO_RUNPRESET3: ret = RunPreset(4); if (ret<-2) goto labelProcessCommand; break; case USER_INPUT_MACRO_RUNPRESET4: ret = RunPreset(5); if (ret<-2) goto labelProcessCommand; break; } } }
/** * @brief Main program. * @param None * @retval None */ void main(void) { uint16_t voltage = 0; /* Init the Eval board LCD */ STM8_EVAL_LCD_Init(); /* Clear LCD */ LCD_Clear(); /* Print "RV ADC Voltage" on LCD line1*/ LCD_SetCursorPos(LCD_LINE1, 0); LCD_Print("RV ADC Voltage"); /* ADC configuration -------------------------------------------*/ ADC_Config(); /* Init Leds */ STM_EVAL_LEDInit(LED1); STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED4); /* Infinite loop*/ while (1) { ADCSavedData = ADCData; while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); ADCData = ADC_GetConversionValue(ADC1); if (ADCSavedData != ADCData) { /* Calculate voltage value*/ voltage = (uint16_t)(((uint32_t)ADCData * (uint32_t)ADC_RATIO) / (uint32_t)1000); /* Display voltage value on LCD*/ ShowVoltage(voltage); STM_EVAL_LEDOff(LED1); /* LED4 is On only if ADC converted data is higher than High Analog watchdog Threshold */ if (ADCData >= HighThresholdData) { STM_EVAL_LEDOn(LED4); LCDString[14] = '<'; } else { STM_EVAL_LEDOff(LED4); LCDString[14] = ' '; } /* LED3 is On only if ADC converted data is lower than Low Analog watchdog Threshold */ if (ADCData <= LowThresholdData) { STM_EVAL_LEDOn(LED3); LCDString[0] = '>'; } else { STM_EVAL_LEDOff(LED3); LCDString[0] = ' '; } } } }
void main(void) { signed char ret = 0; signed char lastMenu = 0; char pnum = 0; SetupIO(); MOTOR_FORWARD = 0; MOTOR_REVERSE = 0; Move_shifted_position.ul = 0; Move_position[0].ul = 0; Move_position[1].ul = 0; //PID_SetPoint = 0; char idx; for (idx = 0; idx < 16; idx++) RotaryDetentIntervals[idx] = 0xFF; //LoadSettings(); FactoryDefault(); SetupHardware(); LCD_PowerUp(); LCD_ClearDisplay(); LCD_PrintString("CINEFLUX ORBIT\0"); LCD_SetPosition(1,0); LCD_PrintString(VER); Wait_ms(2000); const char *COMMAND_0 = "ORBIT MODE\0"; const char *COMMAND_1 = "WAYPOINT MODE\0"; const char *COMMAND_3 = "RUN PRESET\0"; const char *COMMAND_2 = "REALTIME MODE\0"; const char *COMMAND_4 = "BATTERY VOLTAGE\0"; const char *COMMAND_5 = "GO TO SLEEP\0"; const char *COMMAND_6 = "EXTERNAL CTRL MODE\0"; const char*CommandMenu[7]; CommandMenu[0] = COMMAND_0; CommandMenu[1] = COMMAND_1; CommandMenu[2] = COMMAND_2; CommandMenu[3] = COMMAND_3; CommandMenu[4] = COMMAND_4; CommandMenu[5] = COMMAND_5; CommandMenu[6] = COMMAND_6; bFollowMode = 1; LCD_ClearDisplay(); LCD_PrintString("MOVE TO ZERO DEGREES\0"); LCD_SetPosition(1, 0); LCD_PrintString("THEN CLICK...\0"); GetClick(); bClear_MotorPosition = 1; while (bClear_MotorPosition) Idle(); Wait_ms(10); bFollowMode = 0; LCD_ClearDisplay(); while (1) { ret = DisplayMenu(CommandMenu, 6, lastMenu); switch (ret) { case 0: lastMenu = 0; if (!CreateOrbitProgram() == 0) RealtimeMode(); break; case 1: lastMenu = 1; if (!CreateWaypointProgram() == 0) RealtimeMode(); break; case 3: lastMenu = 2; ret = GetPresetNumber(); if (ret == -1) break; if (ret == -2) break; pnum = ret; switch (GetPresetType(pnum)) { case 1: LoadPreset(pnum, (unsigned char *) &CurrentPath); if (!RunWaypointProgram() == 0) RealtimeMode(); break; case 2: LoadPreset(pnum, (unsigned char *) &CurrentOrbitProgram); if (!RunOrbitProgram() == 0) RealtimeMode(); break; } break; case 2: lastMenu = 2; RealtimeMode(); break; case 4: lastMenu = 0; ShowVoltage(); break; case 5: lastMenu = 0; GoToSleep(); break; case 6: lastMenu = 0; ExtMode(); break; } } }