Estimada cucaracha:
Entiendo que es un placer y un aprendizaje embarcarse en la contrucción de
un proyecto como ese.
De cualquier manera, mi humilde opinión, es que no es un proyecto para alguien que necesite un osciloscopio preciso, funcional y de bajo coste.
Esto es lo que entiendo. Si estoy muy equivocado, por favor corrígeme.
De la hoja de datos de PIC16F877A:
Amplifier Settling Time + Hold Capacitor Charging Time + Temperature Coefficient
TAMP + TC + TCOFF
2 µs + TC + [(Temperature – 25°C)(0.05 µs/°C)]
CHOLD (RIC + RSS + RS) In(1/2047)
- 120 pF (1 kΩ + 7 kΩ + 10 kΩ
In(0.0004885)
16.47 µs
2 µs + 16.47 µs + [(50°C – 25°C)(0.05 µs/°C)
19.72 µs
Es decir que la ventana mínima entre lecturas debería ser de 20 us, tomando
en cuenta una temperatura de 25 centigrados.
Ahora bien, supongamos un cristal de 20Mhz... eso quiere decir que son
20 ciclos de procesador por us, ¿correcto?. Entonces en teoría, tienes que
dejar pasar 40 (20 * 20) ciclos de procesador entre dos lecturas, en el mejor
de los casos (a 25 grados centígrados). Entonces 20000000 / 40 = 500,000.
O sea que en el mejor de los casos y suponiendo que no gastas ni un ciclo
de procesador de más, tienes una resolución horizontal real de
menos de 500Khz.
Esto por lo menos en teoría. Pero necesitas ciclos de procesador para hacer los
cálculos y para mostrar los datos (o enviarlos hacia afuera). Además el ancho
de banda de 10 bits, no es gran cosa...
Como te decía, me parece que para aprender puede ser un buen proyecto,
pero es poco práctico.
También creo que hay miles de proyectos para aprender que hagan cosas
realmente útiles. Pero de vuelta, va en gustos.
El razonamiento de arriba es el que haría antes de embarcarme en semejante
proyecto.
En cuanto al triggering... esas tres lineas de código así sueltas no tienen
sentido.
Saludos
PD. Igual sólo tómalo como una opinión personal