Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@2:968db132481b, 2020-01-04 (annotated)
- Committer:
- samvilm
- Date:
- Sat Jan 04 12:34:04 2020 +0000
- Revision:
- 2:968db132481b
- Parent:
- 0:fb6bbc10ffa0
Sorts array of numbers in assembly language. Also sorts same array in C to compare and ensure same sorted array is returned.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| samvilm | 2:968db132481b | 1 | #include "mbed.h" |
| samvilm | 2:968db132481b | 2 | // Function prototypes |
| samvilm | 2:968db132481b | 3 | extern "C" int asm_sort(int numbers[16], int size); |
| samvilm | 2:968db132481b | 4 | extern "C" int my_leds(int value); |
| simon | 0:fb6bbc10ffa0 | 5 | |
| samvilm | 2:968db132481b | 6 | void c_sort (int numbers[16], int size){ |
| samvilm | 2:968db132481b | 7 | int temp; |
| samvilm | 2:968db132481b | 8 | for (int out_count = 0; out_count <= size - 2; out_count++){ |
| samvilm | 2:968db132481b | 9 | for (int in_count = 0; in_count <= size - 2 - out_count; in_count++){ |
| samvilm | 2:968db132481b | 10 | if (numbers[in_count] > numbers[in_count + 1]){ |
| samvilm | 2:968db132481b | 11 | temp = numbers[in_count]; |
| samvilm | 2:968db132481b | 12 | numbers[in_count] = numbers[in_count + 1]; |
| samvilm | 2:968db132481b | 13 | numbers[in_count + 1] = temp; |
| samvilm | 2:968db132481b | 14 | } |
| samvilm | 2:968db132481b | 15 | } |
| samvilm | 2:968db132481b | 16 | } |
| samvilm | 2:968db132481b | 17 | } |
| samvilm | 2:968db132481b | 18 | |
| samvilm | 2:968db132481b | 19 | // Declare LED outputs |
| samvilm | 2:968db132481b | 20 | DigitalOut myled1(LED1); |
| samvilm | 2:968db132481b | 21 | DigitalOut myled2(LED2); |
| samvilm | 2:968db132481b | 22 | DigitalOut myled3(LED3); |
| samvilm | 2:968db132481b | 23 | DigitalOut myled4(LED4); |
| samvilm | 2:968db132481b | 24 | // Set up array to sort |
| samvilm | 2:968db132481b | 25 | const int size = 16; |
| samvilm | 2:968db132481b | 26 | int numbers[size] = {12, 11, 14, 10, 9, 8, 22, 7, 6, 5, 15, 4, 3, 2, 0, 1}; |
| simon | 0:fb6bbc10ffa0 | 27 | |
| simon | 0:fb6bbc10ffa0 | 28 | int main() { |
| samvilm | 2:968db132481b | 29 | // Show current array contents and set lights to "before" pattern |
| samvilm | 2:968db132481b | 30 | |
| samvilm | 2:968db132481b | 31 | printf("Before\n\r"); |
| samvilm | 2:968db132481b | 32 | for(int index = 0; index <= size-1; index++){ |
| samvilm | 2:968db132481b | 33 | printf("%d, ", numbers[index]); |
| samvilm | 2:968db132481b | 34 | my_leds(numbers[index]); |
| samvilm | 2:968db132481b | 35 | wait(0.5); |
| simon | 0:fb6bbc10ffa0 | 36 | } |
| samvilm | 2:968db132481b | 37 | |
| samvilm | 2:968db132481b | 38 | // Call the sort function, comment out the one not being used |
| samvilm | 2:968db132481b | 39 | asm_sort(numbers, size); // Call to assembly sort |
| samvilm | 2:968db132481b | 40 | //c_sort(numbers, size); // Call to driver test stub |
| samvilm | 2:968db132481b | 41 | |
| samvilm | 2:968db132481b | 42 | printf("\n\rAfter\n\r"); |
| samvilm | 2:968db132481b | 43 | |
| samvilm | 2:968db132481b | 44 | for(int index = 0; index <= size-1; index++){ |
| samvilm | 2:968db132481b | 45 | printf("%d, ", numbers[index]); |
| samvilm | 2:968db132481b | 46 | my_leds(numbers[index]); |
| samvilm | 2:968db132481b | 47 | wait(0.5); |
| samvilm | 2:968db132481b | 48 | } |
| samvilm | 2:968db132481b | 49 | |
| samvilm | 2:968db132481b | 50 | while(1) {} |
| samvilm | 2:968db132481b | 51 | } |