Depends on how much other work your PIC is doing. At under 100 pulses per second this is 10,000 microseconds per pulse so the PIC could do a lot of other work and still read the pin occasionally to see if it is high. Simplistically, if it was high you could wait until it went low again and then count 1 count. If the pulses are near 50/50 high and low this wastes time so you need to sample it occasionally and if it has been high for N samples (N will vary depending on how fast you sample), decide this is a valid high and add 1 to count. Now continue to sample but ignore the pin until it has gone low and then high again. If input is from a JK then you should have no problem with bounce (as long as you have dealt with it in hardware). Alternatively you could use an interupt to interrupt the processor every time a pulse occurs and add 1 to the counter. At this pulse rate you probably don't need ANY counters before the PIC - it should be able to do all the dividing by itself. Top: STATE = pin Until pin has been <> STATE for N samples Do other stuff test pin End Until Counter = counter +1 goto Top From: Robert Mellgren OK, i will make it more precise. and thanx for the rapid answer. There is a pulse coming from a pump which indicates liters, the pump gives away 50 or 100 pulses per liter depending on which "probe" excuse my bad translation, dunno the english word for it ). What i have done is that i have divided the pulse by ten by making a counter made out of, JK«s. so that every 10 pulse i get a "1" this way i get a 0.01 Liters accuracy on the count. This is the pulse i want to count in the PIC, and i want to give it a value 0.01. i am wondering how does such a count work. i got a tip about an integer count but i havent figured it out. i looked around but didnt find anything about it, maybe i am really bad at using astalavista i dunno.