Можно реализовать следующим образом:
Заводим переменные, например X(разница импульсов между опросами),Y(кол-во импульсов до опроса) и M(суммарное кол-во импульсов), первая и вторая формата Integer, третья - dword(чтобы все 100000 вместились и осталось куча места) Да, кстати ту переменную в которой идет накопление импульсов обзовём Z, она тоже Integer. И делаем следующие операции:
X:=Z-Y; {выделяем сколько прошло импульсов с предыдущего опроса}
If X<0 then X:=32768-Y+Z; end_if; {Если произошло обнуление, т.е. переполнение Z, выделяем остатки}
M:=M+X; {суммируем}
Y:=Z; {нормализуем}
Их надо выполнять по времени(поставить таймер или завести отдельную подпрограмму) с расчетом, что за это время, Z точно не успеет переполнится за 32 768. По мне как - чем чаще тем лучше!)
Со временем надо будет обнулять и M, но это уже на усмотрение и зависит от конкретной задачи.
Успехов вам!