Hi all,
Darrell mentioned in his first post that EXT will not work with arrays,
Can anyone suggest an elegant way to receive serial BYTE data in and convert it to WORD data and then sort it? Obviously, this won't work and to do it straight-line would be a mess.
ThanksCode:ByteData var byte[32] BANK0 ASM Arg0 = _ByteData ; word Arg1 = _ByteData + 2 ; word Arg2 = _ByteData + 4 ; word Arg3 = _ByteData + 6 ; word Arg4 = _ByteData + 8 ; word Arg5 = _ByteData + 10 ; word Arg6 = _ByteData + 12 ; word Arg7 = _ByteData + 14 ; word Arg8 = _ByteData + 16 ; word Arg9 = _ByteData + 18 ; word Arg10 = _ByteData + 20 ; word Arg11 = _ByteData + 22 ; word Arg12 = _ByteData + 24 ; word Arg13 = _ByteData + 26 ; word Arg14 = _ByteData + 28 ; word Arg15 = _ByteData + 30 ; word ENDASM Arg0 VAR WORD EXT Arg1 VAR word EXT Arg2 VAR WORD EXT Arg3 VAR WORD EXT Arg4 VAR word EXT Arg5 VAR WORD EXT Arg6 VAR word EXT Arg7 VAR WORD EXT Arg8 VAR WORD EXT Arg9 VAR word EXT Arg10 VAR WORD EXT Arg11 VAR word EXT Arg12 VAR WORD EXT Arg13 VAR WORD EXT Arg14 VAR word EXT Arg15 VAR word EXT ........... '***Sort Array SUB ** collects 16 readings, sorts, and averages middle 8 ****** SortArray: CounterA=0 SortLoop: ' sorts 16 readings of RawData in order If Arg(CounterA+1) < Arg(CounterA) then DataA=Arg(CounterA) Arg(CounterA)=Arg(CounterA+1) Arg(CounterA+1+0)=DataA If CounterA > 0 then CounterA=CounterA-2 endif CounterA=CounterA+1 If CounterA < 15 then goto SortLoop
Bo




Bookmarks