De la misma forma que lo estas haciendo, como no uso BASIC, te voy a dar las ideas nomas, vos vas a ser el encargado de ver como se realiza. Y despues te voy a hacer una pregunta.
- En el PIC hay siempre un pin que se puede configurar por interrupcion por flanco y es el RB0 o INT
Con ese pin podrias hacer lo mismo que estas haciendo vos, vas a tener una funcion de interrupcion la cual vas a aumentar una variable, y en tu loop principal vas a leer ese valor.
- Otra forma es usar el Timer, y configurarlo para que tome los pulsos externos, de esa forma la suma de pulsos se maneja por hardware, y la unica interrupcion que necesitas es por si se produce un overflow del Timer. Cuando queres lees la cantidad de pulsos y luego pones a 0 el timer para comenzar de vuelta.
Mi pregunta para vos es... ¿ Por que sabiendo programar en C/C++ como para Arduino, te vas a otro lenguaje como BASIC ?, ¿Porque no usar cualquiera de los otros compiladores como XC8, CCS, MikroC, que son exclusivamente C?