Witam!
Tak sie zastanawiam teoretycznie:
Mam CPU który popędzam kwarcem który źle się dzieli aby uzyskać całkowiete odstępy czasu (wielokrotności 1ms). Na przykład kwarcem
11,059MHz. W dodatku timer generuje przerwanie co 256 zliczeń. W ogóle można powiedziec, że 1ms nie jest całkowitą wielokrotnością okresu pojawiania się przerwania.W jaki sposób obliczyc co które przerwanie wywołać moją funckję, która powinna być wywołana co 1ms. Zastanawiam się nad tym i ewidentnie nie mogę wywoływac co z góry założoną ilość przerwań timera - musze wewnatrz przerwania timera to wyliczyć. Zakładam, że nie mogę korzystać z dzielenia/mnożenia. Dobrze by było również nie korzystać z dużych liczb (procesor ma inne rzeczy na głowie niż arytmetyka 4-bajtowa).
Czy istnieje jakaś wygodna sztuczka do tego ? na razie mam to zrobione tak, że jest duży licznik 4 bajty, ale on mi się nie podoba (za dużo czasu zajmuje liczenie, to jest 8-bitowy AVR). Niestety brakuje mi już mocy obliczeniowej ...
PS. Zakładam że nie chce wywoływać dokładnie co 1ms, ale statystycznie powinno wypaśc 100 wywołań na 100ms. Zakładam równiez że znam wartośc kwarcu w momencie kompilacji (program w C).