Introduction |
|
xv | |
|
PART I Essentials of Embedded Systems, Using the mbed |
|
|
|
Chapter 1 Embedded Systems, Microcontrollers, and ARM |
|
|
3 | (16) |
|
1.1 Introducing Embedded Systems |
|
|
3 | (5) |
|
1.1.1 What Is an Embedded System? |
|
|
3 | (2) |
|
1.1.2 An Example Embedded System |
|
|
5 | (1) |
|
1.1.3 A Second Example System: A Word on Control Systems and the Segway |
|
|
6 | (2) |
|
1.2 Microprocessors and Microcontrollers |
|
|
8 | (3) |
|
1.2.1 Some Computer Essentials |
|
|
8 | (2) |
|
1.2.2 The Microcontroller |
|
|
10 | (1) |
|
1.3 Development Processes for Embedded Systems |
|
|
11 | (2) |
|
1.3.1 Programming Languages---What's So Special About C/C++? |
|
|
11 | (1) |
|
1.3.2 The Development Cycle |
|
|
12 | (1) |
|
|
13 | (6) |
|
|
13 | (2) |
|
1.4.2 Some Technical Detail---What Does This RISC Word Mean? |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
18 | (1) |
|
Chapter 2 Introducing the mbed |
|
|
19 | (18) |
|
|
19 | (6) |
|
2.1.1 mbed and mbed-Enabled |
|
|
19 | (1) |
|
|
20 | (1) |
|
2.1.3 The mbed LPC1768 Architecture |
|
|
21 | (2) |
|
2.1.4 The LPC1768 Microcontroller |
|
|
23 | (2) |
|
2.2 Getting Started With the mbed: A Tutorial |
|
|
25 | (4) |
|
Step 1 Connecting the mbed to the PC |
|
|
25 | (1) |
|
Step 2 Creating an mbed Account |
|
|
25 | (1) |
|
|
26 | (2) |
|
Step 4 Compiling the Program |
|
|
28 | (1) |
|
Step 5 Downloading the Program Binary Code |
|
|
29 | (1) |
|
Step 6 Modifying the Program Code |
|
|
29 | (1) |
|
2.3 The Development Environment |
|
|
29 | (8) |
|
2.3.1 The mbed Software Development Kit and API |
|
|
29 | (1) |
|
|
30 | (1) |
|
2.3.3 The mbed Application Board |
|
|
30 | (3) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
35 | (2) |
|
Chapter 3 Digital Input and Output |
|
|
37 | (32) |
|
|
37 | (5) |
|
3.1.1 Thinking About the First Program |
|
|
37 | (3) |
|
|
40 | (1) |
|
3.1.3 Exploring the while Loop |
|
|
41 | (1) |
|
3.2 Voltages as Logic Values |
|
|
42 | (2) |
|
3.3 Digital Output on the mbed |
|
|
44 | (3) |
|
3.3.1 Using Light Emitting Diodes |
|
|
44 | (2) |
|
3.3.2 Using mbed External Pins |
|
|
46 | (1) |
|
|
47 | (4) |
|
3.4.1 Connecting Switches to a Digital System |
|
|
47 | (1) |
|
|
48 | (1) |
|
3.4.3 Using if to Respond to a Switch Input |
|
|
49 | (2) |
|
3.5 Digital Input and Output With the Application Board |
|
|
51 | (3) |
|
3.6 Interfacing Simple Optodevices |
|
|
54 | (7) |
|
3.6.1 Optoreflective and Transmissive Sensors |
|
|
54 | (1) |
|
3.6.2 Connecting an Optosensor to the mbed |
|
|
55 | (1) |
|
3.6.3 Seven-Segment Displays |
|
|
56 | (2) |
|
3.6.4 Connecting a Seven-Segment Display to the mbed |
|
|
58 | (3) |
|
3.7 Switching Larger DC Loads |
|
|
61 | (4) |
|
3.7.1 Applying Transistor Switching |
|
|
61 | (2) |
|
3.7.2 Switching a Motor With the mbed |
|
|
63 | (1) |
|
3.7.3 Switching Multiple Seven-Segment Displays |
|
|
64 | (1) |
|
3.8 Mini Project: Letter Counter |
|
|
65 | (4) |
|
|
65 | (1) |
|
|
65 | (2) |
|
|
67 | (2) |
|
|
69 | (22) |
|
4.1 Introducing Data Conversion |
|
|
69 | (1) |
|
|
69 | (1) |
|
4.2 Analog Outputs on the mbed |
|
|
70 | (6) |
|
4.2.1 Creating Constant Output Voltages |
|
|
71 | (1) |
|
4.2.2 Saw Tooth Waveforms |
|
|
72 | (3) |
|
4.2.3 Testing the DAC Resolution |
|
|
75 | (1) |
|
4.2.4 Generating a Sine Wave |
|
|
75 | (1) |
|
4.3 Another Form of Analog Output: Pulse Width Modulation |
|
|
76 | (2) |
|
4.4 Pulse Width Modulation on the mbed |
|
|
78 | (13) |
|
4.4.1 Using the mbed Pulse Width Modulation Sources |
|
|
78 | (1) |
|
4.4.2 Some Trial Pulse Width Modulation Outputs |
|
|
79 | (1) |
|
4.4.3 Speed Control of a Small Motor |
|
|
80 | (2) |
|
4.4.4 Generating Pulse Width Modulation in Software |
|
|
82 | (1) |
|
|
83 | (2) |
|
4.4.6 Producing Audio Output |
|
|
85 | (3) |
|
|
88 | (1) |
|
|
88 | (1) |
|
|
89 | (2) |
|
|
91 | (20) |
|
5.1 Analog-to-Digital Conversion (ADC) |
|
|
91 | (5) |
|
|
91 | (1) |
|
5.1.2 Range, Resolution, and Quantization |
|
|
92 | (2) |
|
|
94 | (1) |
|
5.1.4 Analog Input With the mbed |
|
|
95 | (1) |
|
5.2 Combining Analog Input and Output |
|
|
96 | (4) |
|
5.2.1 Controlling LED Brightness by Variable Voltage |
|
|
96 | (2) |
|
5.2.2 Controlling LED Brightness by PWM |
|
|
98 | (1) |
|
5.2.3 Controlling PWM Frequency |
|
|
99 | (1) |
|
5.3 Processing Data From Analog Inputs |
|
|
100 | (3) |
|
5.3.1 Displaying Values on the Computer Screen |
|
|
100 | (1) |
|
5.3.2 Scaling ADC Outputs to Recognized Units |
|
|
101 | (1) |
|
5.3.3 Applying Averaging to Reduce Noise |
|
|
102 | (1) |
|
5.4 Some Simple Analog Sensors |
|
|
103 | (2) |
|
5.4.1 The Light-Dependent Resistor |
|
|
103 | (1) |
|
5.4.2 Integrated Circuit Temperature Sensor |
|
|
104 | (1) |
|
5.5 Exploring Data Conversion Timing |
|
|
105 | (2) |
|
5.5.1 Estimating Conversion Time and Applying Nyquist |
|
|
105 | (2) |
|
|
107 | (4) |
|
5.6.1 Two-Dimensional Light Tracking |
|
|
107 | (1) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
109 | (2) |
|
Chapter 6 Further Programming Techniques |
|
|
111 | (24) |
|
6.1 The Benefits of Considered Program Design and Structure |
|
|
111 | (1) |
|
|
111 | (1) |
|
|
112 | (3) |
|
6.3.1 Using Flow Charts to Define Code Structure |
|
|
112 | (2) |
|
|
114 | (1) |
|
6.4 Working With Functions on the mbed |
|
|
115 | (6) |
|
6.4.1 Implementing a Seven-Segment Display Counter |
|
|
116 | (2) |
|
|
118 | (1) |
|
6.4.3 A More Complex Program Using Functions |
|
|
119 | (2) |
|
6.5 Using Multiple Files in C/C++ |
|
|
121 | (4) |
|
6.5.1 Summary of the C/C++ Program Compilation Process |
|
|
122 | (1) |
|
6.5.2 Using #define, #include, #ifndef, and #endif Directives |
|
|
122 | (3) |
|
6.5.3 Using mbed Objects Globally |
|
|
125 | (1) |
|
6.6 Modular Program Example |
|
|
125 | (4) |
|
6.7 Working With Bespoke Libraries |
|
|
129 | (6) |
|
|
133 | (1) |
|
|
134 | (1) |
|
|
134 | (1) |
|
Chapter 7 Starting with Serial Communication |
|
|
135 | (36) |
|
7.1 Introducing Synchronous Serial Communication |
|
|
135 | (2) |
|
|
137 | (7) |
|
|
137 | (1) |
|
7.2.2 SPI on the mbed and Application Board |
|
|
138 | (1) |
|
7.2.3 Setting Up an mbed SPI Master |
|
|
138 | (2) |
|
7.2.4 Creating a SPI Data Link |
|
|
140 | (4) |
|
7.3 Intelligent Instrumentation |
|
|
144 | (4) |
|
7.3.1 Introducing the SPI-Linked ADXL345 Accelerometer |
|
|
145 | (1) |
|
7.3.2 Developing a Simple ADXL345 Program |
|
|
145 | (3) |
|
|
148 | (1) |
|
|
149 | (6) |
|
7.5.1 Introducing the I2C Bus |
|
|
149 | (2) |
|
|
151 | (1) |
|
7.5.3 Setting Up an I2C Data Link |
|
|
152 | (3) |
|
7.6 Communicating With I2C-Enabled Sensors |
|
|
155 | (4) |
|
|
155 | (3) |
|
7.6.2 The SRF08 Ultrasonic Range Finder |
|
|
158 | (1) |
|
|
159 | (1) |
|
7.8 Asynchronous Serial Data Communication |
|
|
160 | (4) |
|
7.8.1 Introducing Asynchronous Serial Data |
|
|
160 | (1) |
|
7.8.2 Applying Asynchronous Communication on the mbed |
|
|
161 | (3) |
|
7.8.3 Applying Asynchronous Communication With the Host Computer |
|
|
164 | (1) |
|
|
164 | (3) |
|
|
164 | (1) |
|
7.9.2 USB Capability on the mbed |
|
|
165 | (1) |
|
7.9.3 Using the mbed to Emulate a USB Mouse |
|
|
166 | (1) |
|
7.9.4 Leaving USB for Now |
|
|
167 | (1) |
|
7.10 Mini Project: Multinode I2C Bus |
|
|
167 | (4) |
|
|
167 | (1) |
|
|
168 | (1) |
|
|
169 | (2) |
|
Chapter 8 Liquid Crystal Displays |
|
|
171 | (28) |
|
|
171 | (3) |
|
8.1.1 Introducing Liquid Crystal Technology |
|
|
171 | (1) |
|
8.1.2 Liquid Crystal Character Displays |
|
|
172 | (2) |
|
8.2 Using the PC1602F LCD |
|
|
174 | (9) |
|
8.2.1 Introducing the PC1602F Display |
|
|
174 | (1) |
|
8.2.2 Connecting the PC1602F to the mbed |
|
|
175 | (1) |
|
8.2.3 Using Modular Coding to Interface the LCD |
|
|
176 | (1) |
|
8.2.4 Initializing the Display |
|
|
177 | (1) |
|
8.2.5 Sending Display Data to the LCD |
|
|
178 | (2) |
|
8.2.6 The Complete LCD.cpp Definition |
|
|
180 | (1) |
|
8.2.7 Using the LCD Functions |
|
|
181 | (1) |
|
8.2.8 Adding Data to a Specified Location |
|
|
182 | (1) |
|
8.3 Using the mbed TextLCD Library |
|
|
183 | (2) |
|
8.4 Displaying Analog Input Data on the LCD |
|
|
185 | (2) |
|
8.5 Pixel Graphics---Implementing the NHD-C12832 Display |
|
|
187 | (6) |
|
8.6 Color LCDs---Interfacing the uLCD-144-G2 |
|
|
193 | (3) |
|
8.7 Mini Project: Digital Spirit Level |
|
|
196 | (3) |
|
|
197 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
Chapter 9 Interrupts, Timers, and Tasks |
|
|
199 | (36) |
|
9.1 Time and Tasks in Embedded Systems |
|
|
199 | (2) |
|
9.1.1 Timers and Interrupts |
|
|
199 | (1) |
|
|
199 | (1) |
|
9.1.3 Event-Triggered and Time-Triggered Tasks |
|
|
200 | (1) |
|
9.1.4 Working in "Real Time" |
|
|
200 | (1) |
|
9.2 Responding to External Events |
|
|
201 | (2) |
|
|
201 | (1) |
|
9.2.2 Introducing Interrupts |
|
|
202 | (1) |
|
9.3 Simple Interrupts on the mbed |
|
|
203 | (2) |
|
9.4 Getting Deeper Into Interrupts |
|
|
205 | (6) |
|
9.4.1 Interrupts on the LPC1768 |
|
|
208 | (1) |
|
9.4.2 Testing Interrupt Latency |
|
|
208 | (1) |
|
9.4.3 Disabling Interrupts |
|
|
209 | (1) |
|
9.4.4 Interrupts From Analog Inputs |
|
|
210 | (1) |
|
9.4.5 Conclusion on Interrupts |
|
|
211 | (1) |
|
9.5 An Introduction to Timers |
|
|
211 | (2) |
|
9.5.1 The Digital Counter |
|
|
212 | (1) |
|
9.5.2 Using the Counter as a Timer |
|
|
212 | (1) |
|
|
213 | (1) |
|
|
213 | (4) |
|
9.6.1 Using Multiple mbed Timers |
|
|
214 | (2) |
|
9.6.2 Testing the Timer Maximum Duration |
|
|
216 | (1) |
|
9.7 Using the mbed Timeout |
|
|
217 | (5) |
|
9.7.1 A Simple Timeout Application |
|
|
217 | (2) |
|
9.7.2 Further Use of Timeout |
|
|
219 | (1) |
|
9.7.3 Timeout Used to Test Reaction Time |
|
|
220 | (2) |
|
9.8 Using the mbed Ticker |
|
|
222 | (4) |
|
9.8.1 Using Ticker for a Metronome |
|
|
223 | (2) |
|
9.8.2 Reflecting on Multitasking in the Metronome Program |
|
|
225 | (1) |
|
|
226 | (1) |
|
|
226 | (3) |
|
9.11 Where Do We Go From Here? The Real-Time Operating System |
|
|
229 | (2) |
|
9.11.1 The Limits of Conventional Programming |
|
|
229 | (1) |
|
9.11.2 Introducing the Real-Time Operating System |
|
|
230 | (1) |
|
9.11.3 A Mention of the mbed RTOS |
|
|
231 | (1) |
|
|
231 | (4) |
|
9.12.1 A Self-contained Metronome |
|
|
231 | (1) |
|
9.12.2 Accelerometer Threshold Interrupt |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
233 | (2) |
|
Chapter 10 Memory and Data Management |
|
|
235 | (20) |
|
|
235 | (3) |
|
|
235 | (1) |
|
10.1.2 Essential Memory Technologies |
|
|
235 | (3) |
|
10.2 Introducing Pointers |
|
|
238 | (2) |
|
10.3 Using Data Files With the mbed |
|
|
240 | (4) |
|
10.3.1 Reviewing Some Useful C/C++ Library Functions |
|
|
241 | (1) |
|
10.3.2 Defining the mbed Local File System |
|
|
241 | (1) |
|
10.3.3 Opening and Closing Files |
|
|
242 | (1) |
|
10.3.4 Recovering a "Lost" mbed |
|
|
243 | (1) |
|
10.3.5 Writing and Reading File Data |
|
|
243 | (1) |
|
10.4 Example mbed Data File Access |
|
|
244 | (3) |
|
|
244 | (1) |
|
10.4.2 String File Access |
|
|
245 | (1) |
|
10.4.3 Using Formatted Data |
|
|
246 | (1) |
|
10.5 Using External SD Card Memory With the mbed |
|
|
247 | (3) |
|
10.6 Using External USB Flash Memory With the mbed |
|
|
250 | (2) |
|
10.7 Mini Project: Accelerometer Data Logging on Exceeding Threshold |
|
|
252 | (3) |
|
|
253 | (1) |
|
|
254 | (1) |
|
|
254 | (1) |
|
PART II Moving to Advanced and Specialist Applications |
|
|
255 | (184) |
|
Chapter 11 Wireless Communication --- Bluetooth and Zigbee |
|
|
257 | (40) |
|
11.1 Introducing Wireless Data Communication |
|
|
257 | (6) |
|
11.1.1 Some Wireless Preliminaries |
|
|
257 | (3) |
|
|
260 | (1) |
|
11.1.3 A Word on Protocols |
|
|
261 | (2) |
|
|
263 | (11) |
|
11.2.1 Introducing Bluetooth |
|
|
263 | (1) |
|
11.2.2 The RN-41 and RN-42 Bluetooth Modules |
|
|
264 | (1) |
|
11.2.3 Getting to Know the RN-41 |
|
|
265 | (3) |
|
11.2.4 Simple Bluetooth: Sending mbed Data to a PC |
|
|
268 | (1) |
|
11.2.5 Simple Bluetooth: Receiving Bluetooth Data From a PC |
|
|
269 | (1) |
|
11.2.6 More Advanced Bluetooth: Communicating Between Two mbeds |
|
|
270 | (4) |
|
11.2.7 Evaluating Bluetooth |
|
|
274 | (1) |
|
|
274 | (15) |
|
11.3.1 Introducing Zigbee |
|
|
274 | (2) |
|
11.3.2 Introducing XBee Wireless Modules |
|
|
276 | (1) |
|
11.3.3 Linking to the XBee From a PC |
|
|
277 | (2) |
|
11.3.4 Configuring an XBee Pair |
|
|
279 | (1) |
|
11.3.5 Implementing a Zigbee Link with XBee and the mbed |
|
|
279 | (5) |
|
11.3.6 Introducing the XBee API |
|
|
284 | (1) |
|
11.3.7 Applying the XBee API |
|
|
285 | (3) |
|
11.3.8 Conclusion on Zigbee and Further Work |
|
|
288 | (1) |
|
|
289 | (8) |
|
11.4.1 Bluetooth Mini Project |
|
|
289 | (1) |
|
11.4.2 Zigbee Mini Project |
|
|
289 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (7) |
|
Chapter 12 Internet Communication and Control |
|
|
297 | (26) |
|
12.1 Introduction to Internet Communication |
|
|
291 | (1) |
|
12.2 The Ethernet Communication Protocol |
|
|
291 | (6) |
|
|
291 | (1) |
|
12.2.2 Implementing Simple mbed Ethernet Communications |
|
|
292 | (3) |
|
12.2.3 Ethernet Communication Between mbeds |
|
|
295 | (2) |
|
12.3 Local Area Network Communications With the mbed |
|
|
297 | (8) |
|
12.3.1 Local Area Network Essentials |
|
|
297 | (3) |
|
12.3.2 Using the mbed for Ethernet Network Communications |
|
|
300 | (3) |
|
12.3.3 Using the mbed as an HTTP File Server |
|
|
303 | (2) |
|
12.4 Using Remote Procedure Calls With the mbed |
|
|
305 | (4) |
|
12.4.1 Controlling mbed Outputs With Remote Procedure Calls |
|
|
306 | (2) |
|
12.4.2 Using Remote Procedure Call Variables |
|
|
308 | (1) |
|
12.5 Using the mbed With Wide Area Networks |
|
|
309 | (4) |
|
12.6 The Internet of Things |
|
|
313 | (10) |
|
12.6.1 The Internet of Things Concept |
|
|
313 | (3) |
|
12.6.2 Opportunities and Challenges for Internet of Things Systems |
|
|
316 | (1) |
|
12.6.3 mbed and the Internet of Things |
|
|
316 | (3) |
|
|
319 | (1) |
|
|
320 | (1) |
|
|
321 | (2) |
|
Chapter 13 Working With Digital Audio |
|
|
323 | (42) |
|
13.1 An Introduction to Digital Audio |
|
|
323 | (1) |
|
13.2 USB MIDI on the mbed |
|
|
324 | (6) |
|
13.2.1 Sending USB MIDI Data From an mbed |
|
|
324 | (3) |
|
13.2.2 Reading USB MIDI Data on the mbed |
|
|
327 | (3) |
|
13.3 Digital Audio Processing |
|
|
330 | (4) |
|
13.3.1 Input and Output of Digital Audio Data With the mbed |
|
|
330 | (2) |
|
13.3.2 Signal Reconstruction |
|
|
332 | (2) |
|
13.4 Digital Audio Filtering Example |
|
|
334 | (6) |
|
13.4.1 Implementing a Digital Low-Pass Filter on the mbed |
|
|
336 | (3) |
|
13.4.2 Digital High-Pass Filter |
|
|
339 | (1) |
|
|
340 | (2) |
|
13.6 Working With Wave Audio Files |
|
|
342 | (8) |
|
13.6.1 The Wave Information Header |
|
|
342 | (3) |
|
13.6.2 Reading the Wave File Header With the mbed |
|
|
345 | (2) |
|
13.6.3 Reading and Outputting Mono Wave Data |
|
|
347 | (3) |
|
13.7 High-Fidelity Digital Audio With the mbed |
|
|
350 | (11) |
|
13.7.1 Texas Instruments TLV320 Audio Codec and the I2S Protocol |
|
|
351 | (1) |
|
13.7.2 Outputting Audio Data From the TLV320 |
|
|
352 | (4) |
|
13.7.3 High-Fidelity Wave File Player |
|
|
356 | (3) |
|
13.7.4 High-Fidelity Audio Input (Recording) |
|
|
359 | (2) |
|
13.8 Summary on Digital Audio and Digital Signal Processing |
|
|
361 | (1) |
|
13.9 Mini Project: Portable Music Player |
|
|
361 | (4) |
|
|
361 | (1) |
|
|
362 | (1) |
|
|
362 | (3) |
|
Chapter 14 Letting Co of the mbed Libraries |
|
|
365 | (24) |
|
14.1 Introduction: How Much Do We Depend on the mbed API |
|
|
365 | (1) |
|
14.2 Control Register Concepts |
|
|
366 | (1) |
|
14.3 Digital Input/Output |
|
|
367 | (6) |
|
14.3.1 LPC1768 Digital Input/Output Control Registers |
|
|
367 | (1) |
|
14.3.2 A Digital Output Application |
|
|
368 | (2) |
|
14.3.3 Adding a Second Digital Output |
|
|
370 | (1) |
|
|
371 | (2) |
|
14.4 Getting Deeper Into the Control Registers |
|
|
373 | (4) |
|
14.4.1 Pin Select and Pin Mode Registers |
|
|
373 | (2) |
|
14.4.2 Power Control and Clock Select Registers |
|
|
375 | (2) |
|
|
377 | (2) |
|
14.5.1 LPC1768 DAC Control Registers |
|
|
377 | (1) |
|
|
378 | (1) |
|
|
379 | (7) |
|
14.6.1 LPC1768 ADC Control Registers |
|
|
380 | (1) |
|
14.6.2 An ADC Application |
|
|
381 | (3) |
|
14.6.3 Changing ADC Conversion Speed |
|
|
384 | (2) |
|
14.7 A Conclusion on Using the Control Registers |
|
|
386 | (3) |
|
|
386 | (1) |
|
|
386 | (1) |
|
|
387 | (2) |
|
Chapter 15 Hardware Insights: Clocks, Resets, and Power Supply |
|
|
389 | (30) |
|
|
389 | (4) |
|
15.1.1 Power Supply and the mbed |
|
|
389 | (4) |
|
15.2 Clock Sources and Their Selection |
|
|
393 | (9) |
|
15.2.1 Some Clock Oscillator Preliminaries |
|
|
393 | (1) |
|
15.2.2 LPC1768 Clock Oscillators and the mbed Implementation |
|
|
394 | (2) |
|
15.2.3 Adjusting the Clock Configuration Register |
|
|
396 | (2) |
|
15.2.4 Adjusting the Phase-Locked Loop |
|
|
398 | (3) |
|
15.2.5 Selecting the Clock Source |
|
|
401 | (1) |
|
|
402 | (3) |
|
|
403 | (1) |
|
15.3.2 Other Sources of Reset |
|
|
404 | (1) |
|
|
405 | (4) |
|
15.4.1 How Power Is Consumed in a Digital Circuit |
|
|
405 | (2) |
|
15.4.2 A Word on Cells and Batteries |
|
|
407 | (2) |
|
15.5 Exploring mbed Power Consumption |
|
|
409 | (5) |
|
15.5.1 LPC1768 Current Consumption |
|
|
410 | (1) |
|
15.5.2 Switching Unwanted Things Off! |
|
|
411 | (1) |
|
15.5.3 Manipulating the Clock Frequency |
|
|
412 | (1) |
|
15.5.4 LPC1768 Low-Power Modes |
|
|
413 | (1) |
|
15.6 Getting Serious About Low Power; the M0/M0+ Cores and the Zero Gecko |
|
|
414 | (5) |
|
15.6.1 The M0 Cortex Core |
|
|
414 | (1) |
|
15.6.2 The EFM32 Zero Gecko Starter Kit |
|
|
414 | (2) |
|
|
416 | (1) |
|
|
416 | (1) |
|
|
417 | (2) |
|
Chapter 16 Developing Commercial Products With mbed |
|
|
419 | (20) |
|
16.1 Embedded Systems Design Process |
|
|
419 | (3) |
|
16.2 Using mbed-Enabled Platforms in Commercial Products |
|
|
422 | (5) |
|
16.3 Implementing the mbed Architecture on a Bespoke Printed Circuit Board |
|
|
427 | (1) |
|
16.4 Programming the LPC1768 Directly |
|
|
428 | (5) |
|
16.5 Case Study: Irisense Temperature Logger With Touch Screen Display |
|
|
433 | (3) |
|
|
436 | (3) |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
437 | (2) |
Appendix A Some Number Systems |
|
439 | (8) |
Appendix B Some C Essentials |
|
447 | (20) |
Appendix C mbed Technical Data |
|
467 | (6) |
Appendix D Parts List |
|
473 | (4) |
Appendix E Using a Host Terminal Emulator |
|
477 | (6) |
Index |
|
483 | |