(28-08-2010 22:30)sp5fcs napisał(a): W assemblerze to nie problem i tak trzeba napisać własną arytmetykę.
Właśnie z tego powodu piszę oprogramowanie w Bascomie bo nie chcę tracić energii na podstawowe procedury skupiając się raczej nad meritum problemu ;-)
Ale wracając do tematu 38 bitowej dokładności obliczeń to jak zrozumiałem z opisu układu to jeśli nie jest ona dostępna zaleca się oddzeilenie części całkowitej od części ułamkowej dzielnika oraz przemnożenie części ułamkowej przez czynnik 2^28 co miałoby poprawić dokładność. Taki właśnie algorytm wprowadziłem do obliczeń ale na razie nie sprawdziłem czy mogę z dokładnością zejść dowolnie nisko już to z powodu niewielkiej ilości prób jakie przeprowadziłem a już to z powodu małej dokładności miernika częstotliwości jaki posiadam. Zmiany częstotliwości obserwowałem pośrednio sprawdzając po ilu krokach impulsatora zmienia mi się ostatnia cyfra wyniku i wydaje się, że mam założoną dokładność co najmniej 10 Hz na poziomie 10MHz.
Ja zrobiłem do kontaktu z układem Si570 podprogram z jednym argumentem: częstotliwością pracy podaną jako XXX.XXXXXX MHz więc w ten sposób wszystkie zmiany częstotliwości wykonuję w sposób naturalny przez dodanie/odjęcie jakiejś wartości (kroku zmiany lub offset-u) lub przemnożenie przez stały czynnik (np. przy pracy z multiplkacją częstotliwości dla urządzeń DC). Algorytm sterowania zakłada, że niezależnie od wielkości zmiany jaką muszę wykonać przeprowadzam pełną procedurę obliczeń. Nie sprawdzałem czy i jaki będzie to miało wpływ np. odbiór sygnału w słuchawkach. Może sprawdzę to jeszcze dziś.
L.J.