TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: kidpic en 27 de Noviembre de 2014, 16:13:38
-
estoy analizando un programa que mide distancia mediante ultrasonido y no le puedo encontrar una lógica a las siguientes líneas
while ( !input (echo))
{}
set_timer1(36535)
while ( input (echo))
{}
la linea del timer corresponde a la carga del timer 1 con ese valor. ¿ Se puede hacer directmente ? lo que no me cierra es !INPUT y el INPUT
gracias
-
Lo que hace es comprobar que no hay señal en input, luego precarga el timer, y finalmente espera a que haya señal en input, el valor acumulado en el timer es el tiempo transcurrido.
Eso esta bien si tu micro no va a hacer nada mientras espera la señal, que si son varios milisegundos, puedes perderte otras cosas que pasen en tu sistema.
-
Gracias por la respuesta, ya entendí la lógica.
Una consulta referente al timer1 ( de 16 bit ) y los prescaler. De acuerdo a lo leído estos me permiten retardar el tiempo de desborde del timer1. Como este es uno de 16 bits puedo contar hasta 65536. Si elijo 1:1 y un oscilador externo de 4Mhz cada cuenta lo hace en 1microsegundo. si elijo un prescaler de 1:2 cada cuenta lo hace en 2 microsegundos, para prescaler de 4 serán 4 microsegundos. Es correcto este razonamiento?