Tambien podes declarar una variable afuera de cualquier funcion, y esta pasara a ser una variable global, es decir la misma para cualquier funcion que la use.
por ejemplo:
#include <16F84a.h>
#use delay(clock=10000000)
#fuses XT,NOWDT
long ppr;
long contador; //estas son variables GLOBALES
void tirar_pulso(void)
{
output_bit (pin_A0,1);
delay_ms (100);
output_bit (pin_A0,0);
}
#int_ext
void contar_pulsos()
{
if (input(pin_a2)) contador++;
output_bit (pin_b1,!input(pin_a2));
output_bit (pin_b2,input(pin_a2));
}
void main()
{
//setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
ext_int_edge( L_TO_H );
enable_interrupts(INT_ext);
enable_interrupts(GLOBAL);
ppr = 370;
contador = 0;
while (true)
if (contador >= ppr)
{
contador = 0;
tirar_pulso();
}
}