/** * Get a scaled sample straight from this channel. * The value is scaled to units of Volts using the calibrated scaling data from * GetLSBWeight() and GetOffset(). * @return A scaled sample straight from this channel. */ float AnalogInput::GetVoltage() const { if (StatusIsFatal()) return 0.0f; int32_t status = 0; float voltage = getAnalogVoltage(m_port, &status); wpi_setErrorWithContext(status, getHALErrorMessage(status)); return voltage; }
/* * Class: edu_wpi_first_wpilibj_hal_AnalogJNI * Method: getAnalogVoltage * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/IntBuffer;)D */ JNIEXPORT jdouble JNICALL Java_edu_wpi_first_wpilibj_hal_AnalogJNI_getAnalogVoltage (JNIEnv * env, jclass, jobject id, jobject status) { void ** javaId = (void**)env->GetDirectBufferAddress(id); //ANALOGJNI_LOG(logDEBUG) << "Analog Ptr = " << *javaId; jint * statusPtr = (jint*)env->GetDirectBufferAddress(status); jdouble returnValue = getAnalogVoltage( *javaId, statusPtr ); //ANALOGJNI_LOG(logDEBUG) << "Status = " << *statusPtr; //ANALOGJNI_LOG(logDEBUG) << "Voltage = " << returnValue; return returnValue; }
int main (void) { // SYSTEMConfigPerformance(40000000); initTMR(); initLCD(); initADC(); initPWM(); int i; while(1) { if (IFS0bits.AD1IF == 1) { analogVal = ADC1BUF0; IFS0bits.AD1IF = 0; getAnalogVoltage(analogVal); } //moveCursorLCD(1,1); //printCharLCD('c'); //getAnalogVoltage(analogVal); } }
int getAnalogVoltageIntHack(void* analog_port_pointer, int32_t *status) { return floatToInt(getAnalogVoltage(analog_port_pointer, status)); }