![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
REVO_1_SteeringDisplay
Dependencies: Digital_InOut KS0108 mbed
Digital_Out.h@0:313541d8f8be, 2014-09-27 (annotated)
- Committer:
- kiran_mbed
- Date:
- Sat Sep 27 18:43:15 2014 +0000
- Revision:
- 0:313541d8f8be
Steering_Display;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kiran_mbed | 0:313541d8f8be | 1 | /* |
kiran_mbed | 0:313541d8f8be | 2 | Test Code |
kiran_mbed | 0:313541d8f8be | 3 | #include "Digital_Out.h" |
kiran_mbed | 0:313541d8f8be | 4 | |
kiran_mbed | 0:313541d8f8be | 5 | //Serial pc(USBTX,USBRX); |
kiran_mbed | 0:313541d8f8be | 6 | |
kiran_mbed | 0:313541d8f8be | 7 | int main() |
kiran_mbed | 0:313541d8f8be | 8 | { |
kiran_mbed | 0:313541d8f8be | 9 | Digital_Out ledPin1(p1_18,1); |
kiran_mbed | 0:313541d8f8be | 10 | Digital_Out ledPin2(p1_20,0); |
kiran_mbed | 0:313541d8f8be | 11 | Digital_Out ledPin3(p1_21,1); |
kiran_mbed | 0:313541d8f8be | 12 | Digital_Out ledPin4(p1_23,0); |
kiran_mbed | 0:313541d8f8be | 13 | |
kiran_mbed | 0:313541d8f8be | 14 | |
kiran_mbed | 0:313541d8f8be | 15 | wait(0.5); |
kiran_mbed | 0:313541d8f8be | 16 | while(1) |
kiran_mbed | 0:313541d8f8be | 17 | { |
kiran_mbed | 0:313541d8f8be | 18 | ledPin1= !ledPin1; |
kiran_mbed | 0:313541d8f8be | 19 | ledPin2= !ledPin2; |
kiran_mbed | 0:313541d8f8be | 20 | ledPin3= !ledPin3; |
kiran_mbed | 0:313541d8f8be | 21 | ledPin4= !ledPin4; |
kiran_mbed | 0:313541d8f8be | 22 | |
kiran_mbed | 0:313541d8f8be | 23 | wait(0.5); |
kiran_mbed | 0:313541d8f8be | 24 | ledPin1= !ledPin1; |
kiran_mbed | 0:313541d8f8be | 25 | ledPin2= !ledPin2; |
kiran_mbed | 0:313541d8f8be | 26 | ledPin3= !ledPin3; |
kiran_mbed | 0:313541d8f8be | 27 | ledPin4= !ledPin4; |
kiran_mbed | 0:313541d8f8be | 28 | |
kiran_mbed | 0:313541d8f8be | 29 | wait(0.5); |
kiran_mbed | 0:313541d8f8be | 30 | } |
kiran_mbed | 0:313541d8f8be | 31 | |
kiran_mbed | 0:313541d8f8be | 32 | Digital_Out pin(p0_0); |
kiran_mbed | 0:313541d8f8be | 33 | |
kiran_mbed | 0:313541d8f8be | 34 | DigitalOut myled(LED1); |
kiran_mbed | 0:313541d8f8be | 35 | |
kiran_mbed | 0:313541d8f8be | 36 | Timer t; |
kiran_mbed | 0:313541d8f8be | 37 | int main() { |
kiran_mbed | 0:313541d8f8be | 38 | t.reset(); |
kiran_mbed | 0:313541d8f8be | 39 | t.start(); |
kiran_mbed | 0:313541d8f8be | 40 | for (int i = 0; i < 1000000; i++){ |
kiran_mbed | 0:313541d8f8be | 41 | pin = 1; |
kiran_mbed | 0:313541d8f8be | 42 | pin = 0; |
kiran_mbed | 0:313541d8f8be | 43 | } |
kiran_mbed | 0:313541d8f8be | 44 | t.stop(); |
kiran_mbed | 0:313541d8f8be | 45 | |
kiran_mbed | 0:313541d8f8be | 46 | unsigned int time1 = t.read_us(); |
kiran_mbed | 0:313541d8f8be | 47 | |
kiran_mbed | 0:313541d8f8be | 48 | t.reset(); |
kiran_mbed | 0:313541d8f8be | 49 | t.start(); |
kiran_mbed | 0:313541d8f8be | 50 | for (int i = 0; i < 1000000; i++) { |
kiran_mbed | 0:313541d8f8be | 51 | myled = 1; |
kiran_mbed | 0:313541d8f8be | 52 | myled = 0; |
kiran_mbed | 0:313541d8f8be | 53 | } |
kiran_mbed | 0:313541d8f8be | 54 | t.stop(); |
kiran_mbed | 0:313541d8f8be | 55 | unsigned int time2 = t.read_us(); |
kiran_mbed | 0:313541d8f8be | 56 | printf("Library time: %d, mbed time: %d\r\n", time1, time2); |
kiran_mbed | 0:313541d8f8be | 57 | while(1) { |
kiran_mbed | 0:313541d8f8be | 58 | |
kiran_mbed | 0:313541d8f8be | 59 | } |
kiran_mbed | 0:313541d8f8be | 60 | } |
kiran_mbed | 0:313541d8f8be | 61 | */ |
kiran_mbed | 0:313541d8f8be | 62 | |
kiran_mbed | 0:313541d8f8be | 63 | #ifndef DIGITAL_OUT_H |
kiran_mbed | 0:313541d8f8be | 64 | #define DIGITAL_OUT_H |
kiran_mbed | 0:313541d8f8be | 65 | |
kiran_mbed | 0:313541d8f8be | 66 | #include"mbed.h" |
kiran_mbed | 0:313541d8f8be | 67 | |
kiran_mbed | 0:313541d8f8be | 68 | #define _PINSEL_BASE 0x4002C000 |
kiran_mbed | 0:313541d8f8be | 69 | #define _FIODIR_BASE 0x2009C000 |
kiran_mbed | 0:313541d8f8be | 70 | #define _FIOSET_BASE 0x2009C018 |
kiran_mbed | 0:313541d8f8be | 71 | #define _FIOCLR_BASE 0x2009C01C |
kiran_mbed | 0:313541d8f8be | 72 | #define _FIOPIN_BASE 0x2009C014 |
kiran_mbed | 0:313541d8f8be | 73 | |
kiran_mbed | 0:313541d8f8be | 74 | #ifndef _PIN_ |
kiran_mbed | 0:313541d8f8be | 75 | #define _PIN_ |
kiran_mbed | 0:313541d8f8be | 76 | typedef struct |
kiran_mbed | 0:313541d8f8be | 77 | { |
kiran_mbed | 0:313541d8f8be | 78 | int port; |
kiran_mbed | 0:313541d8f8be | 79 | int pin; |
kiran_mbed | 0:313541d8f8be | 80 | }Pin; |
kiran_mbed | 0:313541d8f8be | 81 | #endif /* _PIN_ */ |
kiran_mbed | 0:313541d8f8be | 82 | |
kiran_mbed | 0:313541d8f8be | 83 | #ifndef _PIN_NAME_ |
kiran_mbed | 0:313541d8f8be | 84 | #define _PIN_NAME_ |
kiran_mbed | 0:313541d8f8be | 85 | // Note many pins are not available as fully functional GPIOs, they are ommitted below |
kiran_mbed | 0:313541d8f8be | 86 | enum Pin_Name |
kiran_mbed | 0:313541d8f8be | 87 | { |
kiran_mbed | 0:313541d8f8be | 88 | p0_0 = 0, |
kiran_mbed | 0:313541d8f8be | 89 | p0_1 = 1, |
kiran_mbed | 0:313541d8f8be | 90 | p0_2 = 2, |
kiran_mbed | 0:313541d8f8be | 91 | p0_3 = 3, |
kiran_mbed | 0:313541d8f8be | 92 | p0_4 = 4, |
kiran_mbed | 0:313541d8f8be | 93 | p0_5 = 5, |
kiran_mbed | 0:313541d8f8be | 94 | p0_6 = 6, |
kiran_mbed | 0:313541d8f8be | 95 | p0_7 = 7, |
kiran_mbed | 0:313541d8f8be | 96 | p0_8 = 8, |
kiran_mbed | 0:313541d8f8be | 97 | p0_9 = 9, |
kiran_mbed | 0:313541d8f8be | 98 | p0_10 = 10, |
kiran_mbed | 0:313541d8f8be | 99 | p0_11 = 11, |
kiran_mbed | 0:313541d8f8be | 100 | /*p0_12 = 12, |
kiran_mbed | 0:313541d8f8be | 101 | p0_13 = 13, |
kiran_mbed | 0:313541d8f8be | 102 | p0_14 = 14,*/ |
kiran_mbed | 0:313541d8f8be | 103 | p0_15 = 15, |
kiran_mbed | 0:313541d8f8be | 104 | p0_16 = 16, |
kiran_mbed | 0:313541d8f8be | 105 | |
kiran_mbed | 0:313541d8f8be | 106 | p0_17 = 17, |
kiran_mbed | 0:313541d8f8be | 107 | p0_18 = 18, |
kiran_mbed | 0:313541d8f8be | 108 | p0_19 = 19, |
kiran_mbed | 0:313541d8f8be | 109 | p0_20 = 20, |
kiran_mbed | 0:313541d8f8be | 110 | p0_21 = 21, |
kiran_mbed | 0:313541d8f8be | 111 | p0_22 = 22, |
kiran_mbed | 0:313541d8f8be | 112 | p0_23 = 23, |
kiran_mbed | 0:313541d8f8be | 113 | p0_24 = 24, |
kiran_mbed | 0:313541d8f8be | 114 | p0_25 = 25, |
kiran_mbed | 0:313541d8f8be | 115 | p0_26 = 26, |
kiran_mbed | 0:313541d8f8be | 116 | /* p0_27 = 27, |
kiran_mbed | 0:313541d8f8be | 117 | p0_28 = 28, |
kiran_mbed | 0:313541d8f8be | 118 | p0_29 = 29, |
kiran_mbed | 0:313541d8f8be | 119 | p0_30 = 30,*/ |
kiran_mbed | 0:313541d8f8be | 120 | |
kiran_mbed | 0:313541d8f8be | 121 | |
kiran_mbed | 0:313541d8f8be | 122 | p1_0 = 100, |
kiran_mbed | 0:313541d8f8be | 123 | p1_1 = 101, |
kiran_mbed | 0:313541d8f8be | 124 | /* p1_2 = 102, |
kiran_mbed | 0:313541d8f8be | 125 | p1_3 = 103,*/ |
kiran_mbed | 0:313541d8f8be | 126 | p1_4 = 104, |
kiran_mbed | 0:313541d8f8be | 127 | /* p1_5 = 105, |
kiran_mbed | 0:313541d8f8be | 128 | p1_6 = 106, |
kiran_mbed | 0:313541d8f8be | 129 | p1_7 = 107,*/ |
kiran_mbed | 0:313541d8f8be | 130 | p1_8 = 108, |
kiran_mbed | 0:313541d8f8be | 131 | p1_9 = 109, |
kiran_mbed | 0:313541d8f8be | 132 | p1_10 = 110, |
kiran_mbed | 0:313541d8f8be | 133 | /* p1_11 = 111, |
kiran_mbed | 0:313541d8f8be | 134 | p1_12 = 112, |
kiran_mbed | 0:313541d8f8be | 135 | p1_13 = 113,*/ |
kiran_mbed | 0:313541d8f8be | 136 | p1_14 = 114, |
kiran_mbed | 0:313541d8f8be | 137 | p1_15 = 115, |
kiran_mbed | 0:313541d8f8be | 138 | |
kiran_mbed | 0:313541d8f8be | 139 | p1_16 = 116, |
kiran_mbed | 0:313541d8f8be | 140 | p1_17 = 117, |
kiran_mbed | 0:313541d8f8be | 141 | p1_18 = 118, |
kiran_mbed | 0:313541d8f8be | 142 | p1_19 = 119, |
kiran_mbed | 0:313541d8f8be | 143 | p1_20 = 120, |
kiran_mbed | 0:313541d8f8be | 144 | p1_21 = 121, |
kiran_mbed | 0:313541d8f8be | 145 | p1_22 = 122, |
kiran_mbed | 0:313541d8f8be | 146 | p1_23 = 123, |
kiran_mbed | 0:313541d8f8be | 147 | p1_24 = 124, |
kiran_mbed | 0:313541d8f8be | 148 | p1_25 = 125, |
kiran_mbed | 0:313541d8f8be | 149 | p1_26 = 126, |
kiran_mbed | 0:313541d8f8be | 150 | p1_27 = 127, |
kiran_mbed | 0:313541d8f8be | 151 | p1_28 = 128, |
kiran_mbed | 0:313541d8f8be | 152 | p1_29 = 129, |
kiran_mbed | 0:313541d8f8be | 153 | p1_30 = 130, |
kiran_mbed | 0:313541d8f8be | 154 | |
kiran_mbed | 0:313541d8f8be | 155 | |
kiran_mbed | 0:313541d8f8be | 156 | p2_0 = 200, |
kiran_mbed | 0:313541d8f8be | 157 | p2_1 = 201, |
kiran_mbed | 0:313541d8f8be | 158 | p2_2 = 202, |
kiran_mbed | 0:313541d8f8be | 159 | p2_3 = 203, |
kiran_mbed | 0:313541d8f8be | 160 | p2_4 = 204, |
kiran_mbed | 0:313541d8f8be | 161 | p2_5 = 205, |
kiran_mbed | 0:313541d8f8be | 162 | p2_6 = 206, |
kiran_mbed | 0:313541d8f8be | 163 | p2_7 = 207, |
kiran_mbed | 0:313541d8f8be | 164 | p2_8 = 208, |
kiran_mbed | 0:313541d8f8be | 165 | p2_9 = 209, |
kiran_mbed | 0:313541d8f8be | 166 | p2_10 = 210, |
kiran_mbed | 0:313541d8f8be | 167 | p2_11 = 211, |
kiran_mbed | 0:313541d8f8be | 168 | p2_12 = 212, |
kiran_mbed | 0:313541d8f8be | 169 | p2_13 = 213, |
kiran_mbed | 0:313541d8f8be | 170 | /* p2_14 = 214, |
kiran_mbed | 0:313541d8f8be | 171 | p2_15 = 215, |
kiran_mbed | 0:313541d8f8be | 172 | |
kiran_mbed | 0:313541d8f8be | 173 | p2_16 = 216, |
kiran_mbed | 0:313541d8f8be | 174 | p2_17 = 217, |
kiran_mbed | 0:313541d8f8be | 175 | p2_18 = 218, |
kiran_mbed | 0:313541d8f8be | 176 | p2_19 = 219, |
kiran_mbed | 0:313541d8f8be | 177 | p2_20 = 220, |
kiran_mbed | 0:313541d8f8be | 178 | p2_21 = 221, |
kiran_mbed | 0:313541d8f8be | 179 | p2_22 = 222, |
kiran_mbed | 0:313541d8f8be | 180 | p2_23 = 223, |
kiran_mbed | 0:313541d8f8be | 181 | p2_24 = 224, |
kiran_mbed | 0:313541d8f8be | 182 | p2_25 = 225, |
kiran_mbed | 0:313541d8f8be | 183 | p2_26 = 226, |
kiran_mbed | 0:313541d8f8be | 184 | p2_27 = 227, |
kiran_mbed | 0:313541d8f8be | 185 | p2_28 = 228, |
kiran_mbed | 0:313541d8f8be | 186 | p2_29 = 229, |
kiran_mbed | 0:313541d8f8be | 187 | p2_30 = 230,*/ |
kiran_mbed | 0:313541d8f8be | 188 | |
kiran_mbed | 0:313541d8f8be | 189 | |
kiran_mbed | 0:313541d8f8be | 190 | /* p3_0 = 300, |
kiran_mbed | 0:313541d8f8be | 191 | p3_1 = 301, |
kiran_mbed | 0:313541d8f8be | 192 | p3_2 = 302, |
kiran_mbed | 0:313541d8f8be | 193 | p3_3 = 303, |
kiran_mbed | 0:313541d8f8be | 194 | p3_4 = 304, |
kiran_mbed | 0:313541d8f8be | 195 | p3_5 = 305, |
kiran_mbed | 0:313541d8f8be | 196 | p3_6 = 306, |
kiran_mbed | 0:313541d8f8be | 197 | p3_7 = 307, |
kiran_mbed | 0:313541d8f8be | 198 | p3_8 = 308, |
kiran_mbed | 0:313541d8f8be | 199 | p3_9 = 309, |
kiran_mbed | 0:313541d8f8be | 200 | p3_10 = 310, |
kiran_mbed | 0:313541d8f8be | 201 | p3_11 = 311, |
kiran_mbed | 0:313541d8f8be | 202 | p3_12 = 312, |
kiran_mbed | 0:313541d8f8be | 203 | p3_13 = 313, |
kiran_mbed | 0:313541d8f8be | 204 | p3_14 = 314, |
kiran_mbed | 0:313541d8f8be | 205 | p3_15 = 315, |
kiran_mbed | 0:313541d8f8be | 206 | |
kiran_mbed | 0:313541d8f8be | 207 | p3_16 = 316, |
kiran_mbed | 0:313541d8f8be | 208 | p3_17 = 317, |
kiran_mbed | 0:313541d8f8be | 209 | p3_18 = 318, |
kiran_mbed | 0:313541d8f8be | 210 | p3_19 = 319, |
kiran_mbed | 0:313541d8f8be | 211 | p3_20 = 320, |
kiran_mbed | 0:313541d8f8be | 212 | p3_21 = 321, |
kiran_mbed | 0:313541d8f8be | 213 | p3_22 = 322, |
kiran_mbed | 0:313541d8f8be | 214 | p3_23 = 323, |
kiran_mbed | 0:313541d8f8be | 215 | p3_24 = 324,*/ |
kiran_mbed | 0:313541d8f8be | 216 | p3_25 = 325, |
kiran_mbed | 0:313541d8f8be | 217 | p3_26 = 326, |
kiran_mbed | 0:313541d8f8be | 218 | /*p3_27 = 327, |
kiran_mbed | 0:313541d8f8be | 219 | p3_28 = 328, |
kiran_mbed | 0:313541d8f8be | 220 | p3_29 = 329, |
kiran_mbed | 0:313541d8f8be | 221 | p3_30 = 330,*/ |
kiran_mbed | 0:313541d8f8be | 222 | |
kiran_mbed | 0:313541d8f8be | 223 | /*p4_0 = 400, |
kiran_mbed | 0:313541d8f8be | 224 | p4_1 = 401, |
kiran_mbed | 0:313541d8f8be | 225 | p4_2 = 402, |
kiran_mbed | 0:313541d8f8be | 226 | p4_3 = 403, |
kiran_mbed | 0:313541d8f8be | 227 | p4_4 = 404, |
kiran_mbed | 0:313541d8f8be | 228 | p4_5 = 405, |
kiran_mbed | 0:313541d8f8be | 229 | p4_6 = 406, |
kiran_mbed | 0:313541d8f8be | 230 | p4_7 = 407, |
kiran_mbed | 0:313541d8f8be | 231 | p4_8 = 408, |
kiran_mbed | 0:313541d8f8be | 232 | p4_9 = 409, |
kiran_mbed | 0:313541d8f8be | 233 | p4_10 = 410, |
kiran_mbed | 0:313541d8f8be | 234 | p4_11 = 411, |
kiran_mbed | 0:313541d8f8be | 235 | p4_12 = 412, |
kiran_mbed | 0:313541d8f8be | 236 | p4_13 = 413, |
kiran_mbed | 0:313541d8f8be | 237 | p4_14 = 414, |
kiran_mbed | 0:313541d8f8be | 238 | p4_15 = 415, |
kiran_mbed | 0:313541d8f8be | 239 | |
kiran_mbed | 0:313541d8f8be | 240 | p4_16 = 416, |
kiran_mbed | 0:313541d8f8be | 241 | p4_17 = 417, |
kiran_mbed | 0:313541d8f8be | 242 | p4_18 = 418, |
kiran_mbed | 0:313541d8f8be | 243 | p4_19 = 419, |
kiran_mbed | 0:313541d8f8be | 244 | p4_20 = 420, |
kiran_mbed | 0:313541d8f8be | 245 | p4_21 = 421, |
kiran_mbed | 0:313541d8f8be | 246 | p4_22 = 422, |
kiran_mbed | 0:313541d8f8be | 247 | p4_23 = 423, |
kiran_mbed | 0:313541d8f8be | 248 | p4_24 = 424, |
kiran_mbed | 0:313541d8f8be | 249 | p4_25 = 425, |
kiran_mbed | 0:313541d8f8be | 250 | p4_26 = 426, |
kiran_mbed | 0:313541d8f8be | 251 | p4_27 = 427,*/ |
kiran_mbed | 0:313541d8f8be | 252 | p4_28 = 428, |
kiran_mbed | 0:313541d8f8be | 253 | p4_29 = 429, |
kiran_mbed | 0:313541d8f8be | 254 | /*p4_30 = 430*/ |
kiran_mbed | 0:313541d8f8be | 255 | |
kiran_mbed | 0:313541d8f8be | 256 | }; |
kiran_mbed | 0:313541d8f8be | 257 | #endif /* _PIN_NAME_ */ |
kiran_mbed | 0:313541d8f8be | 258 | |
kiran_mbed | 0:313541d8f8be | 259 | |
kiran_mbed | 0:313541d8f8be | 260 | class Digital_Out |
kiran_mbed | 0:313541d8f8be | 261 | { |
kiran_mbed | 0:313541d8f8be | 262 | private: Pin _pin; |
kiran_mbed | 0:313541d8f8be | 263 | public: Digital_Out(Pin_Name IPin) |
kiran_mbed | 0:313541d8f8be | 264 | { |
kiran_mbed | 0:313541d8f8be | 265 | _pin.port=(IPin/100); |
kiran_mbed | 0:313541d8f8be | 266 | _pin.pin=(IPin%100); |
kiran_mbed | 0:313541d8f8be | 267 | const int PINSELx = ((_pin.port*2) + (1* (_pin.pin > 15) ? 1:0)); |
kiran_mbed | 0:313541d8f8be | 268 | const int FIODIRx = _pin.port; |
kiran_mbed | 0:313541d8f8be | 269 | |
kiran_mbed | 0:313541d8f8be | 270 | *(uint32_t*)(_PINSEL_BASE + (PINSELx*4)) &= ~(1 << ((_pin.pin%16)*2) | (1 << (((_pin.pin%16)*2)+1))); //GPIO |
kiran_mbed | 0:313541d8f8be | 271 | *(uint32_t*)(_FIODIR_BASE + (FIODIRx*0x20)) |= (1 << _pin.pin); //Output |
kiran_mbed | 0:313541d8f8be | 272 | } |
kiran_mbed | 0:313541d8f8be | 273 | |
kiran_mbed | 0:313541d8f8be | 274 | Digital_Out(Pin_Name IPin, int value) |
kiran_mbed | 0:313541d8f8be | 275 | { |
kiran_mbed | 0:313541d8f8be | 276 | _pin.port=(IPin/100); |
kiran_mbed | 0:313541d8f8be | 277 | _pin.pin=(IPin%100); |
kiran_mbed | 0:313541d8f8be | 278 | const int PINSELx = ((_pin.port*2) + (1* (_pin.pin > 15) ? 1:0)); |
kiran_mbed | 0:313541d8f8be | 279 | const int FIODIRx = _pin.port; |
kiran_mbed | 0:313541d8f8be | 280 | |
kiran_mbed | 0:313541d8f8be | 281 | *(uint32_t*)(_PINSEL_BASE + (PINSELx*4)) &= ~(1 << ((_pin.pin%16)*2) | (1 << (((_pin.pin%16)*2)+1))); //GPIO |
kiran_mbed | 0:313541d8f8be | 282 | *(uint32_t*)(_FIODIR_BASE + (FIODIRx*0x20)) |= (1 << _pin.pin); //Output |
kiran_mbed | 0:313541d8f8be | 283 | *(uint32_t*)((_FIOSET_BASE*value) + (_FIOCLR_BASE*(1-value)) + (_pin.port*0x20)) |= (1 << _pin.pin); //Write |
kiran_mbed | 0:313541d8f8be | 284 | } |
kiran_mbed | 0:313541d8f8be | 285 | |
kiran_mbed | 0:313541d8f8be | 286 | void write(int value) |
kiran_mbed | 0:313541d8f8be | 287 | { |
kiran_mbed | 0:313541d8f8be | 288 | if (value != 1 && value != 0) return; |
kiran_mbed | 0:313541d8f8be | 289 | *(uint32_t*)((_FIOSET_BASE*value)+(_FIOCLR_BASE*(1-value)) + (_pin.port*0x20)) |= (1 << _pin.pin); //Write |
kiran_mbed | 0:313541d8f8be | 290 | } |
kiran_mbed | 0:313541d8f8be | 291 | |
kiran_mbed | 0:313541d8f8be | 292 | int read() |
kiran_mbed | 0:313541d8f8be | 293 | { |
kiran_mbed | 0:313541d8f8be | 294 | return ((*(uint32_t*)(_FIOPIN_BASE +_pin.port*0x20) & (1 << _pin.pin)) >> _pin.pin); //Read |
kiran_mbed | 0:313541d8f8be | 295 | } |
kiran_mbed | 0:313541d8f8be | 296 | |
kiran_mbed | 0:313541d8f8be | 297 | Digital_Out& operator= (int value) |
kiran_mbed | 0:313541d8f8be | 298 | { |
kiran_mbed | 0:313541d8f8be | 299 | write(value); |
kiran_mbed | 0:313541d8f8be | 300 | return *this; |
kiran_mbed | 0:313541d8f8be | 301 | } |
kiran_mbed | 0:313541d8f8be | 302 | |
kiran_mbed | 0:313541d8f8be | 303 | Digital_Out& operator= (Digital_Out& rhs) |
kiran_mbed | 0:313541d8f8be | 304 | { |
kiran_mbed | 0:313541d8f8be | 305 | write(rhs.read()); |
kiran_mbed | 0:313541d8f8be | 306 | return *this; |
kiran_mbed | 0:313541d8f8be | 307 | } |
kiran_mbed | 0:313541d8f8be | 308 | |
kiran_mbed | 0:313541d8f8be | 309 | operator int() |
kiran_mbed | 0:313541d8f8be | 310 | { |
kiran_mbed | 0:313541d8f8be | 311 | return read(); |
kiran_mbed | 0:313541d8f8be | 312 | } |
kiran_mbed | 0:313541d8f8be | 313 | }; |
kiran_mbed | 0:313541d8f8be | 314 | |
kiran_mbed | 0:313541d8f8be | 315 | #endif /*DIGITAL_OUT_H*/ |