ADDED:
Since you are using PBPL, you can also move the result back to a LONG...
Code:
PRECISION CON 8 SYSTEM ' 8 bytes = 64-bit
INCLUDE "N-Bit_Math.pbp"
FOUT var LONG
Base VAR BYTE[PRECISION]
Fo VAR BYTE[PRECISION]
Fs VAR BYTE[PRECISION]
FTW VAR BYTE[PRECISION]
FTWL VAR LONG
high portc.6
FOUT = 10000000
ASM
MOVE?CP 4294967295, _Base ; 2^32 - 1
MOVE?LP _FOUT, _Fo ; desired frequency out
MOVE?CP 360000000, _Fs ; DDS clock
MATH_MUL _Base, _Fo, _FTW ; 2^32 * Fo
MATH_DIV _FTW, _Fs, _FTW ; / Fs
MOVE?PL _FTW, _FTWL ; move result to a LONG var
ENDASM
serout2 portc.6,84,[" FTW=",HEX8 FTWL," = ",DEC FTWL,13,10]
STOP
Bookmarks