mark_s
- 21st March 2012, 22:06
I am trying to sort paired ADC readings in two arrays. In a loop, an0 an1 are sampled and stored
in seperate arrays. These become matched pairs for that time period. I need the min/max for all the readings for AN0. No problem with one array. My problem is keeping the AN1 samples, paired with the original AN0 samples after sorting. If anyone has an approach, I would really appreciate
the help. Thanks
Example:
Sampled RAW data
Array
Pos AN0 AN1
1 512 514
2 512 512
3 998 326
4 1021 270
5 640 499
6 300 504
7 423 511
8 512 512
9 512 514
10 510 512
11 511 512
12 515 512
What I need below
SORTED AN0 IN ASSENDING ORDER, AN1 STAYS PAIRED WITH ORIGINAL AN0
New Pos AN0 AN1 Old Pos
1 300 504 6
2 423 511 7
3 510 512 10
4 511 512 11
5 512 514 1
6 512 512 2
7 512 512 8
8 512 514 9
9 515 512 12
10 640 499 5
11 998 326 3
12 1021 270 4
The code below is based on Melanie's, which appeared in post 4 of this thread
http://www.picbasic.co.uk/forum/showthread.php?t=6734
I hope this can be modified to do what I need
SAMPLE_AN0 WORD [12]
SAMPLE_AN1 WORD [12]
CounterA var BYTE
DataTemp var WORD
Getsamples:
For A = 1 to 12
adcin 0 SAMPLE_AN0[A]
adcin 1 SAMPLE_AN1[A]
NEXT A
Sortdata: 'THIS WILL SORT SAMPLES_AN0 not SAMPLE_AN1
CounterA=0
SortArrayLoop:
If SAMP_AN0[CounterA+1] < SAMP_AN0[CounterA] then
DataTemp = SAMP_AN0[CounterA]
SAMP_AN0[CounterA] = SAMP_AN0[CounterA+1]
SAMP_AN0[CounterA+1]= DataTemp
If CounterA > 0 then CounterA = CounterA - 2
endif
CounterA = CounterA + 1
If CounterA < 11 then goto SortArrayLoop
END
in seperate arrays. These become matched pairs for that time period. I need the min/max for all the readings for AN0. No problem with one array. My problem is keeping the AN1 samples, paired with the original AN0 samples after sorting. If anyone has an approach, I would really appreciate
the help. Thanks
Example:
Sampled RAW data
Array
Pos AN0 AN1
1 512 514
2 512 512
3 998 326
4 1021 270
5 640 499
6 300 504
7 423 511
8 512 512
9 512 514
10 510 512
11 511 512
12 515 512
What I need below
SORTED AN0 IN ASSENDING ORDER, AN1 STAYS PAIRED WITH ORIGINAL AN0
New Pos AN0 AN1 Old Pos
1 300 504 6
2 423 511 7
3 510 512 10
4 511 512 11
5 512 514 1
6 512 512 2
7 512 512 8
8 512 514 9
9 515 512 12
10 640 499 5
11 998 326 3
12 1021 270 4
The code below is based on Melanie's, which appeared in post 4 of this thread
http://www.picbasic.co.uk/forum/showthread.php?t=6734
I hope this can be modified to do what I need
SAMPLE_AN0 WORD [12]
SAMPLE_AN1 WORD [12]
CounterA var BYTE
DataTemp var WORD
Getsamples:
For A = 1 to 12
adcin 0 SAMPLE_AN0[A]
adcin 1 SAMPLE_AN1[A]
NEXT A
Sortdata: 'THIS WILL SORT SAMPLES_AN0 not SAMPLE_AN1
CounterA=0
SortArrayLoop:
If SAMP_AN0[CounterA+1] < SAMP_AN0[CounterA] then
DataTemp = SAMP_AN0[CounterA]
SAMP_AN0[CounterA] = SAMP_AN0[CounterA+1]
SAMP_AN0[CounterA+1]= DataTemp
If CounterA > 0 then CounterA = CounterA - 2
endif
CounterA = CounterA + 1
If CounterA < 11 then goto SortArrayLoop
END