Lab Checkoff
Dependencies: SDFileSystem TextLCD mbed-rtos mbed wave_player FATFileSystem
segment_driver.s@0:67dbd54e60d4, 2013-11-13 (annotated)
- Committer:
- doubster
- Date:
- Wed Nov 13 20:00:28 2013 +0000
- Revision:
- 0:67dbd54e60d4
Lab Checkoff
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
doubster | 0:67dbd54e60d4 | 1 | AREA segment_driver, CODE, READONLY |
doubster | 0:67dbd54e60d4 | 2 | ;--------------------OVERVIEW------------------------ |
doubster | 0:67dbd54e60d4 | 3 | ; This file contains ARM Assembly language functions to |
doubster | 0:67dbd54e60d4 | 4 | ; drive a 7-segment LED Display (Kingbright SA03-11HDB). |
doubster | 0:67dbd54e60d4 | 5 | ; This library uses a switch statement on the input |
doubster | 0:67dbd54e60d4 | 6 | ; register (R0) to set or clear each corresponding lead |
doubster | 0:67dbd54e60d4 | 7 | ; of the display. NOTE: The 7 Segments of the LED display |
doubster | 0:67dbd54e60d4 | 8 | ; must be connected to pins p11 - p17 of the mbed digital |
doubster | 0:67dbd54e60d4 | 9 | ; I/O. For further help with understanding this file, |
doubster | 0:67dbd54e60d4 | 10 | ; please refer to files: |
doubster | 0:67dbd54e60d4 | 11 | ; dig_in.s |
doubster | 0:67dbd54e60d4 | 12 | ; dig_out.s |
doubster | 0:67dbd54e60d4 | 13 | ;------------------------------------------------------ |
doubster | 0:67dbd54e60d4 | 14 | ; Import function locations so that C compiler can find it and link |
doubster | 0:67dbd54e60d4 | 15 | IMPORT dig_out_P11 |
doubster | 0:67dbd54e60d4 | 16 | IMPORT P11_write |
doubster | 0:67dbd54e60d4 | 17 | IMPORT dig_out_P12 |
doubster | 0:67dbd54e60d4 | 18 | IMPORT P12_write |
doubster | 0:67dbd54e60d4 | 19 | IMPORT dig_out_P13 |
doubster | 0:67dbd54e60d4 | 20 | IMPORT P13_write |
doubster | 0:67dbd54e60d4 | 21 | IMPORT dig_out_P14 |
doubster | 0:67dbd54e60d4 | 22 | IMPORT P14_write |
doubster | 0:67dbd54e60d4 | 23 | IMPORT dig_out_P15 |
doubster | 0:67dbd54e60d4 | 24 | IMPORT P15_write |
doubster | 0:67dbd54e60d4 | 25 | IMPORT dig_out_P16 |
doubster | 0:67dbd54e60d4 | 26 | IMPORT P16_write |
doubster | 0:67dbd54e60d4 | 27 | IMPORT dig_out_P17 |
doubster | 0:67dbd54e60d4 | 28 | IMPORT P17_write |
doubster | 0:67dbd54e60d4 | 29 | ; Export function location so that C compiler can find it and link |
doubster | 0:67dbd54e60d4 | 30 | EXPORT seg_driver_initialize |
doubster | 0:67dbd54e60d4 | 31 | seg_driver_initialize ;CLEAR DISPLAY |
doubster | 0:67dbd54e60d4 | 32 | PUSH {LR} |
doubster | 0:67dbd54e60d4 | 33 | BL dig_out_P11 |
doubster | 0:67dbd54e60d4 | 34 | BL dig_out_P12 |
doubster | 0:67dbd54e60d4 | 35 | BL dig_out_P13 |
doubster | 0:67dbd54e60d4 | 36 | BL dig_out_P14 |
doubster | 0:67dbd54e60d4 | 37 | BL dig_out_P15 |
doubster | 0:67dbd54e60d4 | 38 | BL dig_out_P16 |
doubster | 0:67dbd54e60d4 | 39 | BL dig_out_P17 |
doubster | 0:67dbd54e60d4 | 40 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 41 | BL P11_write |
doubster | 0:67dbd54e60d4 | 42 | BL P12_write |
doubster | 0:67dbd54e60d4 | 43 | BL P13_write |
doubster | 0:67dbd54e60d4 | 44 | BL P14_write |
doubster | 0:67dbd54e60d4 | 45 | BL P15_write |
doubster | 0:67dbd54e60d4 | 46 | BL P16_write |
doubster | 0:67dbd54e60d4 | 47 | BL P17_write |
doubster | 0:67dbd54e60d4 | 48 | POP {LR} |
doubster | 0:67dbd54e60d4 | 49 | BX LR |
doubster | 0:67dbd54e60d4 | 50 | |
doubster | 0:67dbd54e60d4 | 51 | ; Export function location so that C compiler can find it and link |
doubster | 0:67dbd54e60d4 | 52 | EXPORT seg_driver |
doubster | 0:67dbd54e60d4 | 53 | seg_driver ;SWITCH STATEMENT |
doubster | 0:67dbd54e60d4 | 54 | PUSH {LR} |
doubster | 0:67dbd54e60d4 | 55 | ADR R2,switchpool |
doubster | 0:67dbd54e60d4 | 56 | LDR PC,[R2,R0,LSL #2] |
doubster | 0:67dbd54e60d4 | 57 | ALIGN |
doubster | 0:67dbd54e60d4 | 58 | switchpool |
doubster | 0:67dbd54e60d4 | 59 | DCD case0 |
doubster | 0:67dbd54e60d4 | 60 | DCD case1 |
doubster | 0:67dbd54e60d4 | 61 | DCD case2 |
doubster | 0:67dbd54e60d4 | 62 | DCD case3 |
doubster | 0:67dbd54e60d4 | 63 | DCD case4 |
doubster | 0:67dbd54e60d4 | 64 | DCD case5 |
doubster | 0:67dbd54e60d4 | 65 | DCD case6 |
doubster | 0:67dbd54e60d4 | 66 | DCD case7 |
doubster | 0:67dbd54e60d4 | 67 | DCD case8 |
doubster | 0:67dbd54e60d4 | 68 | DCD case9 |
doubster | 0:67dbd54e60d4 | 69 | case0 |
doubster | 0:67dbd54e60d4 | 70 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 71 | BL P11_write |
doubster | 0:67dbd54e60d4 | 72 | BL P12_write |
doubster | 0:67dbd54e60d4 | 73 | BL P13_write |
doubster | 0:67dbd54e60d4 | 74 | BL P14_write |
doubster | 0:67dbd54e60d4 | 75 | BL P15_write |
doubster | 0:67dbd54e60d4 | 76 | BL P16_write |
doubster | 0:67dbd54e60d4 | 77 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 78 | BL P17_write |
doubster | 0:67dbd54e60d4 | 79 | B end |
doubster | 0:67dbd54e60d4 | 80 | case1 |
doubster | 0:67dbd54e60d4 | 81 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 82 | BL P12_write |
doubster | 0:67dbd54e60d4 | 83 | BL P13_write |
doubster | 0:67dbd54e60d4 | 84 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 85 | BL P11_write |
doubster | 0:67dbd54e60d4 | 86 | BL P14_write |
doubster | 0:67dbd54e60d4 | 87 | BL P15_write |
doubster | 0:67dbd54e60d4 | 88 | BL P16_write |
doubster | 0:67dbd54e60d4 | 89 | BL P17_write |
doubster | 0:67dbd54e60d4 | 90 | B end |
doubster | 0:67dbd54e60d4 | 91 | case2 |
doubster | 0:67dbd54e60d4 | 92 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 93 | BL P11_write |
doubster | 0:67dbd54e60d4 | 94 | BL P12_write |
doubster | 0:67dbd54e60d4 | 95 | BL P14_write |
doubster | 0:67dbd54e60d4 | 96 | BL P15_write |
doubster | 0:67dbd54e60d4 | 97 | BL P17_write |
doubster | 0:67dbd54e60d4 | 98 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 99 | BL P13_write |
doubster | 0:67dbd54e60d4 | 100 | BL P16_write |
doubster | 0:67dbd54e60d4 | 101 | B end |
doubster | 0:67dbd54e60d4 | 102 | case3 |
doubster | 0:67dbd54e60d4 | 103 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 104 | BL P11_write |
doubster | 0:67dbd54e60d4 | 105 | BL P12_write |
doubster | 0:67dbd54e60d4 | 106 | BL P13_write |
doubster | 0:67dbd54e60d4 | 107 | BL P14_write |
doubster | 0:67dbd54e60d4 | 108 | BL P17_write |
doubster | 0:67dbd54e60d4 | 109 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 110 | BL P15_write |
doubster | 0:67dbd54e60d4 | 111 | BL P16_write |
doubster | 0:67dbd54e60d4 | 112 | B end |
doubster | 0:67dbd54e60d4 | 113 | case4 |
doubster | 0:67dbd54e60d4 | 114 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 115 | BL P12_write |
doubster | 0:67dbd54e60d4 | 116 | BL P13_write |
doubster | 0:67dbd54e60d4 | 117 | BL P16_write |
doubster | 0:67dbd54e60d4 | 118 | BL P17_write |
doubster | 0:67dbd54e60d4 | 119 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 120 | BL P11_write |
doubster | 0:67dbd54e60d4 | 121 | BL P14_write |
doubster | 0:67dbd54e60d4 | 122 | BL P15_write |
doubster | 0:67dbd54e60d4 | 123 | B end |
doubster | 0:67dbd54e60d4 | 124 | case5 |
doubster | 0:67dbd54e60d4 | 125 | B end |
doubster | 0:67dbd54e60d4 | 126 | case6 |
doubster | 0:67dbd54e60d4 | 127 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 128 | BL P11_write |
doubster | 0:67dbd54e60d4 | 129 | BL P13_write |
doubster | 0:67dbd54e60d4 | 130 | BL P14_write |
doubster | 0:67dbd54e60d4 | 131 | BL P15_write |
doubster | 0:67dbd54e60d4 | 132 | BL P16_write |
doubster | 0:67dbd54e60d4 | 133 | BL P17_write |
doubster | 0:67dbd54e60d4 | 134 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 135 | BL P12_write |
doubster | 0:67dbd54e60d4 | 136 | B end |
doubster | 0:67dbd54e60d4 | 137 | case7 |
doubster | 0:67dbd54e60d4 | 138 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 139 | BL P11_write |
doubster | 0:67dbd54e60d4 | 140 | BL P12_write |
doubster | 0:67dbd54e60d4 | 141 | BL P13_write |
doubster | 0:67dbd54e60d4 | 142 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 143 | BL P14_write |
doubster | 0:67dbd54e60d4 | 144 | BL P15_write |
doubster | 0:67dbd54e60d4 | 145 | BL P16_write |
doubster | 0:67dbd54e60d4 | 146 | BL P17_write |
doubster | 0:67dbd54e60d4 | 147 | B end |
doubster | 0:67dbd54e60d4 | 148 | case8 |
doubster | 0:67dbd54e60d4 | 149 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 150 | BL P11_write |
doubster | 0:67dbd54e60d4 | 151 | BL P12_write |
doubster | 0:67dbd54e60d4 | 152 | BL P13_write |
doubster | 0:67dbd54e60d4 | 153 | BL P14_write |
doubster | 0:67dbd54e60d4 | 154 | BL P15_write |
doubster | 0:67dbd54e60d4 | 155 | BL P16_write |
doubster | 0:67dbd54e60d4 | 156 | BL P17_write |
doubster | 0:67dbd54e60d4 | 157 | B end |
doubster | 0:67dbd54e60d4 | 158 | case9 |
doubster | 0:67dbd54e60d4 | 159 | MOV R0,#0 |
doubster | 0:67dbd54e60d4 | 160 | BL P11_write |
doubster | 0:67dbd54e60d4 | 161 | BL P12_write |
doubster | 0:67dbd54e60d4 | 162 | BL P13_write |
doubster | 0:67dbd54e60d4 | 163 | BL P16_write |
doubster | 0:67dbd54e60d4 | 164 | BL P17_write |
doubster | 0:67dbd54e60d4 | 165 | MOV R0,#1 |
doubster | 0:67dbd54e60d4 | 166 | BL P14_write |
doubster | 0:67dbd54e60d4 | 167 | BL P15_write |
doubster | 0:67dbd54e60d4 | 168 | B end |
doubster | 0:67dbd54e60d4 | 169 | end |
doubster | 0:67dbd54e60d4 | 170 | POP {LR} |
doubster | 0:67dbd54e60d4 | 171 | BX LR |
doubster | 0:67dbd54e60d4 | 172 | ; |
doubster | 0:67dbd54e60d4 | 173 | END |
doubster | 0:67dbd54e60d4 | 174 |