Interrupt routine is normaal gesproken meest voor de hand liggend. Maar als de frequentie van de pulsen niet te snel is, of anders gezegd als de hoofdlus van het programma snel genoeg is dan kun je ook het volgende overwegen.
int counter = 0;bool pulshigh = false;while(1) // hoofdlus van programma{ // doe hier wat het hoofdprogramma allemaal moet doen // maar dit mag niet te lang duren if (pulshigh == true) && (RA1 == low) // neergaande flank { pulshigh = false; } if (pulshigh == false) && (RA1 == high) // opgaande flank { counter = counter + 1; pulshigh = true; }}N.B. Let bij het tellen er wel op dat je niet over de bovengrens van de variabele gaat want dan krijg je rare dingen. Bij een integer ga je bijvoorbeeld van 32767 naar -32768.