Lógica necesaria para leer y almacenar valores

-1

Soy nuevo en la programación. Tengo una señal de entrada del generador de forma de onda. Le estoy dando esta señal a un sensor y al canal 1 del multiplexor. La salida del sensor está dando al canal 2 del multiplexor. Si la salida del sensor es baja, entonces estoy usando algo de amplificación, la señal después de la amplificación está dando al canal 3 del multiplexor. Estoy usando la caja del interruptor para seleccionar una de las entradas como salida del multiplexor. La salida del multiplexor está dando a ADC externo y puedo leer el valor de ADC.
Mi problema es que necesito tanto el voltaje de entrada del sensor como el voltaje de salida del sensor para calcular la impedancia, pero he escrito una función para leer los valores de ADC. ¿Existe alguna posibilidad de obtener voltaje de entrada y salida usando la función ADC de la misma lectura y tengo que usar ambos valores de voltaje más adelante? O tengo que escribir dos funciones ADC de lectura diferentes para leer los valores de voltaje de entrada y salida. Cualquier consejo por favor.

Estoy usando lenguaje C.

Editado: Hola, Soy capaz de leer diferentes canales MUX. Puedo seleccionar el primer canal y leer el valor de ADC y almacenarlo en una variable. Si cambio el canal MUX al canal 2 y trato de leer ADC y se almacena en otra variable. Pero el problema es cuando intenté leer el segundo canal, la primera vez que está dando el valor del canal anterior y luego, si leo la segunda vez, entonces está dando el valor real del segundo canal. ¿Puede alguien sugerirme cómo superar esto? ¿Quiero obtener el valor original de ese canal por primera vez?

Lo he intentado así.

                          switch(c){

                                        case '1': 
                                            PORTB=0x00;
                                            SetWGFreq(arg); 
                                            Delay(1000);                                  
                                            mux1 = readADC();  
                                         printf("muxchanel 1 adc RawData:%d\r\n",mux1);
                                            Command = 0;  
                                            break;

                                        case '2':           
                                            PORTB=0x04;
                                            SetWGFreq(arg); 
                                            Delay(1000);
                                            mux2 = readADC();  
                                         printf("muxchanel 2 ADC RawData:%d\r\n",mux2);
                                            Command = 0;
                                            break;  
                                        defalut:
                                            command=0;
                                            break;
                                   }

Pero he intentado imprimir el valor de ADC fuera de la caja del interruptor. Ahí está cambiando la primera vez, pero cuando intenté imprimir dentro del conmutador, debo ingresar ese caso dos veces.

    
pregunta verendra

1 respuesta

0

Debes seleccionar el canal 1 de tu MUX. lee un valor usando la función de lectura. Almacenar en una variable. Luego cambie su MUX al canal 2. Lea el valor utilizando la misma función de lectura ADC y guárdelo en otra variable. Luego puede realizar el cálculo utilizando el valor almacenado en la primera y la segunda variable. Eso es todo.

    
respondido por el Blup1980

Lea otras preguntas en las etiquetas