https://hades.mech.northwestern.edu//index.php?title=OBSOLETE_NU32_video_page&feed=atom&action=history
OBSOLETE NU32 video page - Revision history
2024-03-28T18:22:57Z
Revision history for this page on the wiki
MediaWiki 1.35.9
https://hades.mech.northwestern.edu//index.php?title=OBSOLETE_NU32_video_page&diff=23591&oldid=prev
Lynch at 07:23, 21 December 2015
2015-12-21T07:23:20Z
<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 07:23, 21 December 2015</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>'''THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE<del class="diffchange diffchange-inline">.</del> GO TO [[NU32 Videos|the NU32 videos page]] instead.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>'''THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE<ins class="diffchange diffchange-inline">!!</ins> GO TO [[NU32 Videos|the NU32 videos page]] instead.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>===Appendix: A Crash Course in C===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>===Appendix: A Crash Course in C===</div></td>
</tr>
</table>
Lynch
https://hades.mech.northwestern.edu//index.php?title=OBSOLETE_NU32_video_page&diff=23590&oldid=prev
Lynch: Created page with "'''THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE. GO TO the NU32 videos page instead. ===Appendix: A Crash Course in C=== '''Reading''': [[Media:book-current...."
2015-12-21T07:22:52Z
<p>Created page with "'''THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE. GO TO <a href="/index.php/NU32_Videos" title="NU32 Videos">the NU32 videos page</a> instead. ===Appendix: A Crash Course in C=== '''Reading''': [[Media:book-current...."</p>
<p><b>New page</b></p><div>'''THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE. GO TO [[NU32 Videos|the NU32 videos page]] instead.<br />
<br />
===Appendix: A Crash Course in C===<br />
<br />
'''Reading''': [[Media:book-current.pdf|A Crash Course in C]], [[C Compilers]]<br />
<br />
'''Videos''':<br />
# [http://www.youtube.com/watch?v=tVInDFCDVZA&feature=youtu.be '''Writing your first program in C, HelloWorld.c'''] (5:09). Chapter A.1. Exercises: 1.<br />
# [http://www.youtube.com/watch?v=fjSGtiPb-YY&feature=youtu.be '''Differences between C and MATLAB'''] (7:30). Chapter A.2. Exercises: 2, 3.<br />
# [http://www.youtube.com/watch?v=kC4EoTxnJys&feature=youtu.be '''Binary and hexadecimal (Base 2 and 16)'''] (4:47). Chapter A.3.1. Exercises: 4, 6.<br />
# [http://www.youtube.com/watch?v=V1mBtAZxHgw&feature=youtu.be '''Data types'''] (5:30). Chapter A.3.1. Exercises: 8, 10.<br />
# [http://www.youtube.com/watch?v=4XleTmp-RR4&feature=youtu.be '''Using the data types'''] (3:49). Chapter A.3.1. Exercises: 11.<br />
# [http://www.youtube.com/watch?v=jsmCIpBeKjk&feature=youtu.be '''Representations of data types'''] (5:15). Chapter A.3.1. Exercises: 12, 13.<br />
# [http://www.youtube.com/watch?v=47IS8VtAM9E&feature=youtu.be '''Pointer basics'''] (5:54). Chapter A.3.2. Exercises: 14, 15.<br />
# [http://www.youtube.com/watch?v=yBLApvS7fcY&feature=youtu.be '''Sample program: printout.c'''] (5:55). Chapter A.4. Exercises: 16 (not covered in video, reading only) 17, 18.<br />
# [http://www.youtube.com/watch?v=YH-h-hGHIBw&feature=youtu.be '''Sample program: datasizes.c'''] (2:57). Chapter A.4. Exercises: 9.<br />
# [http://www.youtube.com/watch?v=HXXCdVuGm70&feature=youtu.be '''Sample program: overflow.c'''] (2:43). Chapter A.4. Exercises: 19.<br />
# [http://www.youtube.com/watch?v=dd_Uk00yURI&feature=youtu.be '''Sample program: typecast.c'''] (5:43). Chapter A.4. Exercises: 20.<br />
# [http://www.youtube.com/watch?v=MQaHeovdTCU&feature=youtu.be '''invest.c, part 1/5: intro to a typical C program'''] (4:18). Chapter A.4. Exercises: 23.<br />
# [http://www.youtube.com/watch?v=CGmxOs7uxwI&feature=youtu.be '''invest.c, part 2/5: overview'''] (3:58). Chapter A.4. Exercises: 24, 25.<br />
# [http://www.youtube.com/watch?v=x218qBniZdo&feature=youtu.be '''invest.c, part 3/5: sections 1-4: program comments, preprocessor commands, new data type definitions, and global variables'''] (4:48). Chapter A.4. Exercises: 26. <br />
# [http://www.youtube.com/watch?v=2Rl3Dno42pc&feature=youtu.be '''invest.c, part 4/5: sections 5-6: helper function prototypes and the main function'''] (4:40). Chapter A.4.<br />
# [http://www.youtube.com/watch?v=soT9_c6XXko&feature=youtu.be '''invest.c, part 5/5: section 7: helper functions'''] (7:42). Chapter A.4. Exercises: 28-30, 32, 33 (some material covered in reading only).<br />
# [http://www.youtube.com/watch?v=5UMHbzZGQuE '''Header files and libraries'''] (9:31).<br />
<br />
'''Sample Code''':<br />
<br />
*'''Section A.1''': [[Media:CCCHelloWorld.c|HelloWorld.c]]<br />
*'''Section A.4''': [[Media:CCCprintout.c|printout.c]], [[Media:CCCdatasizes.c|datasizes.c]], [[Media:CCCoverflow.c|overflow.c]], [[Media:CCCtypecast.c|typecast.c]], [[Media:CCCinvest.c|invest.c]]<br />
*'''Section A.4.16''': [[Media:CCChelper.h|helper.h]], [[Media:CCChelper.c|helper.c]], [[Media:CCCmain.c|main.c]]<br />
*'''Problems, Section A.5''': [[Media:CCCbubble.c|bubble.c]], [[Media:CCClights.c|lights.c]], [[Media:CCChexdump.c|hexdump.c]]<br />
<br />
'''Microchip Documentation''':<br />
<br />
[http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC32MX795F512L Microchip PIC32MX795F512L]<br />
<br />
----<br />
<br />
===Chapter 1: Quickstart===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 1]]<br />
<br />
'''Videos''': none<br />
<br />
'''Code''': [[Media:PIC32quickstart.zip|PIC32quickstart.zip]]<br />
<!-- <br />
'''Sample Code''':<br />
*'''Section 1.3''': [[Media:PIC32quickstart.zip|PIC32quickstart.zip]]<br />
Individual files:<br />
** [[Media:NU32bootloader.hex|NU32bootloader.hex]]<br />
** [[NU32: Bootloading from command line]]<br />
** [[Media:NU32test.hex|NU32test.hex]]<br />
** [[Media:simplePIC.c|simplePIC.c]]<br />
** [[Media:NU32bootloaded.ld|NU32bootloaded.ld]]<br />
** [[Media:simplePIC_standalone.c|simplePIC_standalone.c]]<br />
** [[Media:talkingPIC.c|talkingPIC.c]]<br />
** [[Media:NU32.c|NU32.c]]<br />
** [[Media:NU32.h|NU32.h]]<br />
--><br />
<br />
----<br />
<br />
===Chapter 2: Looking Under the Hood: Hardware===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 2]]<br />
<br />
'''Videos''':<br />
# [http://youtu.be/xaq6RAO9d3o '''Introduction to the PIC32 microcontroller'''] (5:10).<br />
# [http://youtu.be/UOv0zG_04Bg '''Introduction to the PIC32 architecture'''] (6:02).<br />
# [http://youtu.be/YrkUKYBcVA8 '''The PIC32 physical memory map'''] (5:20).<br />
# [http://youtu.be/CFcf7_xXZpc '''Introduction to the NU32 development board'''] (4:03).<br />
<br />
----<br />
<br />
===Chapter 3: Looking Under the Hood: Software===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 3]]<br />
<br />
'''Videos''':<br />
<br />
# [http://www.youtube.com/watch?v=VqCPafcov1c '''The PIC32 virtual memory map'''] (5:24).<br />
# [http://www.youtube.com/watch?v=sSvou7gxsaQ '''Understanding simplePIC.c'''] (5:42). (The latest version of simplePIC.c includes xc.h, not plib.h)<br />
# [http://www.youtube.com/watch?v=inq7l6p_ppE '''Digging through PIC32 header files'''] (7:12). (Information on plib.h, which is no longer included in simplePIC.c, can be ignored. Focus on xc.h and later.)<br />
# [http://www.youtube.com/watch?v=ZlJmjcGkTl4 '''The PIC32 executable build process'''] (4:26). (The command line compiler commands are a bit different than in Chapter 3, but the main ideas are the same.)<br />
<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:Bootloader.zip|Bootloader.zip]]<br />
--><br />
----<br />
<br />
===Chapter 4: Using Libraries===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 4]]<br />
<br />
'''Videos''':<br />
# [https://www.youtube.com/watch?v=ovhNxIq9Kwo '''The NU32 library'''] (5:28).<br />
<br />
'''Code''': [[Media:04_Code.zip|04_Code.zip]]<br />
<!--<br />
'''Sample Code''':<br />
*'''Section 4.5''': <br />
** NU32.c and NU32.h are included in Chapter 1<br />
** [[Media:LCD.c|LCD.c]]<br />
** [[Media:LCD.h|LCD.h]]<br />
** [[Media:LCDwrite.c|LCDwrite.c]]<br />
--><br />
----<br />
<br />
===Chapter 5: Time and Space===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 5]]<br />
<br />
'''Videos''':<br />
# [http://www.youtube.com/watch?v=Yxq2GuCQed0&feature=youtu.be '''Timing PIC32 code and the disassembly file'''] (8:27). (Note that the timing.c code is slightly different from what is seen in Chapter 5.)<br />
# [http://www.youtube.com/watch?v=994vc171K4A '''The PIC32 memory map file'''] (7:15). (Note that the map file looks a bit different from the one in the book, due to changes in timing.c.)<br />
<br />
'''Code''': [[Media:05_Code.zip|05_Code.zip]]<br />
----<br />
<br />
===Chapter 6: Interrupts===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 6]]<br />
<br />
'''Videos''':<br />
# [http://www.youtube.com/watch?v=Kmss3C732Kg&feature=youtu.be '''Overview of interrupts on the PIC32'''] (4:29).<br />
# [http://www.youtube.com/watch?v=aLJX-CxMb-w&feature=youtu.be '''PIC32 interrupt SFRs'''] (6:22).<br />
# [http://www.youtube.com/watch?v=aIClq90qV7E&feature=youtu.be '''The PIC32 shadow register set'''] (1:25).<br />
# [http://www.youtube.com/watch?v=6Ap3H39iCVI&feature=youtu.be '''Seven steps to using an interrupt with the PIC32'''] (3:47)<br />
# [http://www.youtube.com/watch?v=40YZFMw2nBs&feature=youtu.be '''PIC32 interrupt code example'''] (4:10) NOTE: The code in this video is an old version of the code in Chapter 6. Do not use this code, use what's in Chapter 6.<br />
<br />
'''Code''': [[Media:06_Code.zip|06_Code.zip]]<br />
<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:INT_core_timer.c|INT_core_timer.c]] <br />
* [[Media:INT_ext_int.c|INT_ext_int.c]]<br />
* [[Media:INT_timing.c|INT_timing.c]]<br />
--><br />
----<br />
<br />
===Chapter 7: Digital Input and Output===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 7]]<br />
<br />
'''Videos''':<br />
# [http://youtu.be/QweUbVV6zOQ '''Intro to digital I/O on the PIC32'''] (6:24)<br />
# [http://youtu.be/TyhJXYsvSgE '''Change notification on the PIC32'''] (1:18)<br />
# [http://youtu.be/hgeACkWSYxc '''PIC32 program with digital I/O and change notification'''] (9:02)<br />
<br />
'''Code''': [[Media:07_Code.zip|07_Code.zip]]<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:DIO_sfrs.c|DIO_sfrs.c]]<br />
* [[Media:DIO_plib.c|DIO_plib.c]]<br />
--><br />
----<br />
<br />
===Chapter 8: Counters / Timers===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 8]]<br />
<br />
'''Videos''':<br />
# [http://youtu.be/wOeRTo55BCE '''Intro to PIC32 counter/timers'''] (5:59)<br />
# [http://youtu.be/5bNf9GZUdk8 '''PIC32 timer SFRs'''] (5:55)<br />
# [http://youtu.be/uv-vANdWVeQ '''Using PIC32 timers to generate interrupts'''] (3:34)<br />
# [http://youtu.be/Y5MaR-D7YuM '''Example PIC32 timer interrupt program'''] (5:08)<br />
<br />
'''Code''': [[Media:08_Code.zip|08_Code.zip]]<br />
<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:TMR_5Hz.c|TMR_5Hz.c]]<br />
* [[Media:TMR_external_count.c|TMR_external_count.c]]<br />
* [[Media:TMR_pulse_duration.c|TMR_pulse_duration.c]]<br />
--><br />
----<br />
<br />
===Chapter 9: Output Compare===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 9]]<br />
<br />
'''Videos''':<br />
# [http://youtu.be/U4T53SFPhXI '''Introduction to the PIC32 output compare'''] (5:30)<br />
# [http://youtu.be/iQGtVHH4UM0 '''A PWM program on the PIC32'''] (3:12)<br />
# [http://youtu.be/xhdiiYYF-zY '''Using output compare to create an analog output'''] (3:09)<br />
<br />
'''Code''': [[Media:09_Code.zip|09_Code.zip]]<br />
<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:OC_PWM_sfrs.c|OC_PWM_sfrs.c]]<br />
* [[Media:OC_PWM_plib.c|OC_PWM_plib.c]]<br />
* [[Media:OC_analog_out.c|OC_analog_out.c]]<br />
* [[Media:OC_signal.m|OC_signal.m]]<br />
--><br />
<br />
----<br />
<br />
===Chapter 10: Analog Input===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 10]]<br />
<br />
'''Video''':<br />
# [http://youtu.be/JvlPeWEU5i8 '''The PIC32 analog-to-digital converter'''] (6:47)<br />
<br />
'''Code''': [[Media:10_Code.zip|10_Code.zip]]<br />
<br />
<!--<br />
'''Sample Code''':<br />
* [[Media:ADC_Read2.c|ADC_Read2.c]]<br />
* [[Media:ADC_max_rate.c|ADC_max_rate.c]]<br />
--><br />
----<br />
<br />
===Chapter 11: PID Feedback Control===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 11]]<br />
<br />
'''Videos''':<br />
# [http://youtu.be/taSlxgvvrBM '''Introduction to PID control'''] (4:28)<br />
# [http://youtu.be/La9vll93h44 '''Improving the basic PID control algorithm'''] (2:33)<br />
# [http://youtu.be/T9_C3jhnQXI '''PID control of a mass-spring-damper'''] (4:10)<br />
# [http://youtu.be/LE6SIRA2v48 '''P, PI, and PD variants of PID control'''] (2:42)<br />
# [http://youtu.be/uXnDwojRb1g '''Empirical PID gain tuning'''] (7:08)<br />
<br />
'''Code''': [[Media:PID_Code.zip|PID_Code.zip]]<br />
<br />
----<br />
<br />
===Chapter 12: Feedback Control of LED Brightness===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 12]]<br />
<br />
'''Code''': [[Media:LED_Code.zip|LED_Code.zip]]<br />
<br />
'''A faster version of nu32utility''': [[Media:nu32utility_fast.zip|nu32utility_fast.zip]] - replace your nu32utility program with this version (remember, to compile it use "gcc nu32utility.c -o nu32utility" on mac and "gcc nu32utility.c -o nu32utility -lwinmm" on windows.)<br />
<br />
----<br />
<br />
===Chapter 13: Brushed Permanent Magnet DC Motors===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 13]]<br />
<br />
'''Video''':<br />
# [http://youtu.be/Mj2bV03mVM8 '''Intro to brushed permanent magnet DC motors, part 1/2'''] (4:31)<br />
# [http://youtu.be/9n9QiALi4E4 '''Intro to brushed permanent magnet DC motors, part 2/2'''] (7:10)<br />
# [http://youtu.be/8_SQnN6eNz4 '''Brushed DC motor equations'''] (6:53)<br />
# [http://youtu.be/pxtRlKs0pAg '''Brushed DC motor speed-torque curve'''] (5:59)<br />
# [http://youtu.be/drkC5P11Ch4 '''DC motor output power'''] (2:05)<br />
# [http://youtu.be/nSPgvxoKZIg '''Friction in DC motors'''] (0:55)<br />
# [http://youtu.be/SM1b0co89yg '''A DC motor data sheet'''] (4:34)<br />
----<br />
<br />
===Chapter 14: Motor Sizing===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 14]]<br />
<br />
'''Video''':<br />
# [http://youtu.be/D1chF7_pIR0 '''Introduction to gears'''] (4:12)<br />
# [http://youtu.be/vVg8jb5vaMI '''Gear efficiency'''] (2:40)<br />
# [http://youtu.be/Cc9uvnWaNl0 '''Types of gears'''] (3:47)<br />
----<br />
<br />
===Chapter 15: Motor Control===<br />
<br />
'''Reading'''': <br />
<br />
'''Video''':<br />
# [http://youtu.be/6R_3jHeimiE '''Driving DC motors, part 1/3: Flyback diodes'''] (7:03)<br />
# [http://youtu.be/m5JYkgCRbBI '''Driving DC motors, part 2/3: PWM'''] (3:05)<br />
# [http://youtu.be/fVgnUWIWzZ8 '''Driving DC motors, part 3/3: H-bridges'''] (4:22)<br />
# [http://youtu.be/LdVyC8BOBjA '''A professional motor control system'''] (6:55)<br />
----<br />
<br />
===Chapter 16: A Motor Control System===<br />
<br />
'''Reading''': [[Media:book-current.pdf|Chapter 16]]<br />
<br />
'''Code''': [[Media:Motor_Project_Code.zip|Motor_Project_Code.zip]]<br />
----<br />
<!--<br />
===UART===<br />
** [[Media:UART_loopback.c|UART_loopback.c]] <br />
** [[Media:UART_pic_to_pic.c|UART_pic_to_pic.c]]<br />
** [[Media:UART_hfc_to_pc.c|UART_hfc_to_pc.c]]<br />
** [[Media:UART_xbee.c|UART_xbee.c]]<br />
** [[Media:UART_pic_to_matlab.c|UART_pic_to_matlab.c]]<br />
** [[Media:UART_pic_to_matlab.m|UART_pic_to_matlab.m]]<br />
** [[Media:UART_pic_to_processing.c|UART_pic_to_processing.c]]<br />
** [[Media:UART_pic_to_processing.pde|UART_pic_to_processing.pde]]<br />
** [[Media:UART_pic_to_html5.zip|UART_pic_to_html5.zip]]<br />
<br />
----<br />
<br />
===SPI Communication===<br />
** [[Media:SPI_loopback.c|SPI_loopback.c]] <br />
** [[Media:SPI_pic_to_pic.c|SPI_pic_to_pic.c]]<br />
** [[Media:SPI_DAC_MCP4922.c|SPI_DAC_MCP4922.c]]<br />
** [[Media:SPI_ADC_MCP3008.c|SPI_ADC_MCP3008.c]]<br />
** [[Media:SPI_SRAM_23K256.c|SPI_SRAM_23K256.c]]<br />
** [[Media:SPI_microSDcard.c|SPI_microSDcard.c]]<br />
** [[Media:SPI_accelerometer_ADXL362.c|SPI_accelerometer_ADXL362.c]]<br />
<br />
----<br />
<br />
===I2C Communication===<br />
** [[Media:I2C_loopback.c|I2C_loopback.c]] <br />
** [[Media:I2C_pic_to_pic.c|I2C_pic_to_pic.c]]<br />
** [[Media:I2C_DAC_MAX518.c|I2C_DAC_MAX518.c]]<br />
** [[Media:I2C_ADC_NAU7802.c|I2C_ADC_NAU7802.c]]<br />
** [[Media:I2C_SRAM_PCF8570P.c|I2C_SRAM_PCF8570P.c]]<br />
** [[Media:I2C_accelerometer_LSM303DLHC.c|I2C_accelerometer_LSM303DLHC.c]]<br />
----<br />
<br />
===USB===<br />
** [[Media:USB_HID.zip|USB_HID.zip]]<br />
** [[Media:USB_CDC.zip|USB_CDC.zip]]<br />
** [[Media:USB_thumbDrive.zip|USB_thumbDrive.zip]]<br />
<br />
----<br />
<br />
===Input Capture===<br />
** [[Media:IC_loopbackPWM.c|IC_loopbackPWM.c]]<br />
** [[Media:IC_readRemoteControl.c|IC_readRemoteControl.c]]<br />
<br />
----<br />
<br />
===Comparator===<br />
** [[Media:COMP_internal.c|COMP_internal.c]]<br />
** [[Media:COMP_output16values.c|COMP_output16values.c]]<br />
** [[Media:COMP_INT2values.c|COMP_INT2values.c]]<br />
<br />
----<br />
<br />
===Watchdog Timer===<br />
** [[Media:WDT_enableReset.c|WDT_enableReset.c]]<br />
** [[Media:WDT_checkPreviousReset.c|WDT_checkPreviousReset.c]]<br />
<br />
----<br />
<br />
===Storing Data in Flash Memory===<br />
** [[Media:FLASH_write.c|FLASH_write.c]]<br />
<br />
----<br />
<br />
===Power Saving===<br />
** [[Media:PWR_sleep.c|PWR_sleep.c]]<br />
<br />
----<br />
<br />
===Real-time Clock and Calendar===<br />
** [[Media:RTCC_set.c|RTCC_set.c]]<br />
<br />
----<br />
<br />
===Controller Area Network (CAN)===<br />
** [[Media:CAN_pic_to_pic.c|CAN_pic_to_pic.c]]<br />
<br />
----<br />
<br />
===Direct Memory Access===<br />
** [[Media:DMA_adc.c|DMA_adc.c]]<br />
** [[Media:DMA_spi.c|DMA_spi.c]]<br />
<br />
----<br />
<br />
===Sensors and Signal Conditioning===<br />
<br />
----<br />
<br />
===Digital Signal Processing===<br />
<br />
----<br />
<br />
===Chapter 26: DC Motor Control===<br />
<br />
----<br />
<br />
===Chapter 27: Brushless Motor Control===<br />
<br />
----<br />
<br />
===Chapter 28: Stepper Motors and RC Servos===<br />
<br />
----<br />
<br />
===Chapter 29: Connecting to an Android Device===<br />
<br />
----<br />
--></div>
Lynch