int GetTrimmerValue(int trimmerNumber) { assert_param(IS_TRIMMER_ID_VALID(trimmerNumber)); u16 trimmerValue; switch (trimmerNumber) { case TRIMMER_1: // PC1 - ADC3, IN 11 trimmerValue = GetADCValue(ADC3, 11); break; case TRIMMER_2: // PA1 - ADC3, IN 1 trimmerValue = GetADCValue(ADC3, 1); break; case TRIMMER_3: // PC2 - ADC3, IN 12 trimmerValue = GetADCValue(ADC3, 12); break; } return (int)trimmerValue; }
/** * @brief Получение текущего входного Напряжения. * @param None * @retval Действующее значение напряжения на входе в сотнях миливольт */ int GetVoltage(void) { float Voltage; int ADCValue; ADCValue = GetADCValue(INPUTCHANEL); Voltage = (MAXVOLT/MAXADCVALUE)*ADCValue; return Voltage*83/1; }
/** * @brief Получение текущего тока нагрузки. * @param None * @retval Действующее значение тока нагрузки в мА. */ int GetCurrent(void) { int ADCValue, LoadCurrentmA; float FeedbackVoltage,LoadCurrent; ADCValue = GetADCValue(FEEDBACKCHANEL); FeedbackVoltage = (MAXVOLT*ADCValue)/0x3FF; LoadCurrent = RATIO*FeedbackVoltage/RFB; LoadCurrentmA = LoadCurrent*AMPERVmAMPER/1; return LoadCurrentmA; }
int GetAnalogInput(int adcNumber) { assert_param(IS_ADC_ID_VALID(adcNumber)); u16 adcValue; switch (adcNumber) { case ADC_1: // PC4 - ADC1, IN 14 adcValue = GetADCValue(ADC1, 14); break; case ADC_2: // PC5 - ADC2, IN 15 adcValue = GetADCValue(ADC2, 15); break; } return (int)adcValue; }
/******************************************************************************************************** Function Name: Test_Sensor Description : Ä£ÄâÊäÈë²âÊÔ Inputs : None Outputs : None Notes : Revision : ********************************************************************************************************/ void Test_Sensor(void) { int i = 0; while(1) { for( i=1 ; i<6 ; i++ ) { Test_Sensor_Data[i] = GetADCValue(i); Delay_ms(3); } } }
void PowerWatchProc(void *pdata) { u32 nVoltage; char pStr[32], *p; pdata = pdata; for(;;) { nVoltage = GetADCValue(ADC_Channel_11); sprintf(pStr, "ADC_Value:%d\r\n", nVoltage); for(p = pStr; *p; p++) { USART_SendData(USART1, (uint8_t)*p); while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET){}; } if(nVoltage < POWER_UV_LIMIT) { //输入电压过低,应进行保护处理 } OSTimeDly(100); } }
void GetState(u8 *buf) { u16 tmp16; buf[0] = 0xAA; buf[1] = 0x30; buf[2] = 28; tmp16 = (short)(angle.y*100); buf[3] = BYTE1(tmp16); buf[4] = BYTE0(tmp16); tmp16 = (short)(angle.x*100); buf[5] = BYTE1(tmp16); buf[6] = BYTE0(tmp16); tmp16 = (short)(angle.z*100); buf[7] = BYTE1(tmp16); buf[8] = BYTE0(tmp16); tmp16 = (short)(mpu_info.gyro.x*Gyro2Degree); buf[9] = BYTE1(tmp16); buf[10] = BYTE0(tmp16); tmp16 = (short)(mpu_info.gyro.y*Gyro2Degree); buf[11] = BYTE1(tmp16); buf[12] = BYTE0(tmp16); tmp16 = (short)(mpu_info.gyro.z*Gyro2Degree); buf[13] = BYTE1(tmp16); buf[14] = BYTE0(tmp16); tmp16 = (short)(rollRateDesired*10); buf[15] = BYTE1(tmp16); buf[16] = BYTE0(tmp16); tmp16 = (short)(pitchRateDesired*10); buf[17] = BYTE1(tmp16); buf[18] = BYTE0(tmp16); tmp16 = (short)(yawRateDesired*10); buf[19] = BYTE1(tmp16); buf[20] = BYTE0(tmp16); tmp16 = rollOutput; buf[21] = BYTE1(tmp16); buf[22] = BYTE0(tmp16); tmp16 = pitchOutput; buf[23] = BYTE1(tmp16); buf[24] = BYTE0(tmp16); tmp16 = yawOutput; buf[25] = BYTE1(tmp16); buf[26] = BYTE0(tmp16); tmp16 = Motor_Thr; buf[27] = BYTE1(tmp16); buf[28] = BYTE0(tmp16); /* buf[21] = MOTOR1/5; buf[22] = MOTOR2/5; buf[23] = MOTOR3/5; buf[24] = MOTOR4/5; buf[25] = BYTE3(freqMeas); buf[26] = BYTE2(freqMeas); buf[27] = BYTE1(freqMeas); buf[28] = BYTE0(freqMeas); */ tmp16 = GetADCValue(); tmp16 = (tmp16*5*110/4096 +0.5); buf[30] = tmp16-250; buf[31] = CheckSum(buf,buf[2]+3); }