to może moje 3 grosze...
starajmy sie pisac nazwy zmiennych tak by one coś znaczyły ( czytelność kodu)
INIT - ' to liczymy tylko raz po aktualizacji DDS_CLOCK - więc nie ma sensu tego umieszczać w pętli :-)
CALC ' funkcję jest elegancko użyc ale marnujemy dużo czasu na przeładowania stosu :-) lepiej G|OSUB i zmienna globalna - będzie dużo szybciej !!!
Kod:
'==== subroutine
Dds_clock_init:
Dds_tick = 2do32 / Dds_xtal
Return
Dds_calc_ftw:
Dds_ftw_double = Dds_tick * Dds_vfo_out
Dds_ftw_32b = Dds_ftw_double
Return
tak naprawdę trzeba by zmierzyć jak kod zachowuje się dla VFO QRG 1 MHz 10MHz i 100MHz ... czy szybkość liczenia dla danego języka zależy od długości liczby :-)
i ważne... nie róbmy w pętli (często powtarzane to samo) ... tego co nie musimy czyli liczenie "stałych" ... a zwłaszcza po co dzielić jeśli nie trzeba :-)
jak znajdę czas to zmierzę ile to zajmuje czasu... ale praktycznie np 10000 powtórzeń dla liczny 1 MHz i 10 i 100 MHz..
jak widac u mnie jest tylko jedno MNOŻENIE i niejawne ROUND :-)
ci co śledzili moje wypowiedzi w wątku o C ... zauważyli że do tesowania programu użyłem "debugowania" przez RS232 :-) o którym podpowiadałem że jest bardzo przydatne do podglądania wyników pośrednich :-)
na święta. ... szybko liczącego zajączka ... :-) od Jarka dla Wszystkich