Lab Checkoff

Dependencies:   SDFileSystem TextLCD mbed-rtos mbed wave_player FATFileSystem

Committer:
doubster
Date:
Wed Nov 13 20:00:28 2013 +0000
Revision:
0:67dbd54e60d4
Lab Checkoff

Who changed what in which revision?

UserRevisionLine numberNew 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