es justo lo que requiero manejo de prioridades.
en el siguiente fragmento no entiendo estas lineas
delay=adc*7.7; //escalamiento hasta maximo periodo adc 0 a 1024
// //120Hz -> T:8mS = 8333uS max
long delay=7000;
short bandera1=0;
int contador=0;
long adc=0;
#INT_timer1
void timer1()
{
adc=read_adc(); //lectura de potenciometro externo para temporizar disparo
delay_us(20); //tiempo de conversion adc
delay=adc*7.7; //escalamiento hasta maximo periodo adc 0 a 1024
// //120Hz -> T:8mS = 8333uS max
set_timer1 (65526);
}
Bueno, obviamente ese código no lo has hecho tu, de ahí la duda de no saber que hace.
La línea 9, me parece que posiblemente está mal, ya que el tiempo de conversión del ADC debe ejecutarse antes de leer el ADC, por lo tanto, primero iría el retardo y luego la lectura (read_adc), pero tampoco necesariamente es algo crítico, sería de determinarlo.
Respecto a lo que multiplica el valor, sería de determinar para que sirve la variable denominada
delayYo entendería que lo que se desea medir con el ADC, varía de 0 a 7884.8, y tiene un circuito de acondicionamiento para que esa señal de voltaje varíe de 0 a 5V (0 a 3.3V, ya que no indicas que tipo de microcontrolador usas).
Esta señal de voltaje varía en el ADC de 0 a 1024, y para convertirla de 0 a 7884.8, simplemente hace una regla de tres y multiplica por la constante 7.7.
Pero más de eso no se puede determinar.
Tienes un pequeño problema, y es que piensas que somos adivinos, deberías indicar lo siguiente:
Tipo de microcontrolador.
Tipo de compilador.
Esquemático del hardware utilizado.
Y código que tienes problemas o dudas, en este caso has compartido
algo, pero más de eso no se puede determinar que intentas hacer.