OBSOLETE NU32 video page
THIS PAGE IS NOW OUT-OF-DATE. DO NOT USE!! GO TO the NU32 videos page instead.
Appendix: A Crash Course in C
Reading: A Crash Course in C, C Compilers
Videos:
- Writing your first program in C, HelloWorld.c (5:09). Chapter A.1. Exercises: 1.
- Differences between C and MATLAB (7:30). Chapter A.2. Exercises: 2, 3.
- Binary and hexadecimal (Base 2 and 16) (4:47). Chapter A.3.1. Exercises: 4, 6.
- Data types (5:30). Chapter A.3.1. Exercises: 8, 10.
- Using the data types (3:49). Chapter A.3.1. Exercises: 11.
- Representations of data types (5:15). Chapter A.3.1. Exercises: 12, 13.
- Pointer basics (5:54). Chapter A.3.2. Exercises: 14, 15.
- Sample program: printout.c (5:55). Chapter A.4. Exercises: 16 (not covered in video, reading only) 17, 18.
- Sample program: datasizes.c (2:57). Chapter A.4. Exercises: 9.
- Sample program: overflow.c (2:43). Chapter A.4. Exercises: 19.
- Sample program: typecast.c (5:43). Chapter A.4. Exercises: 20.
- invest.c, part 1/5: intro to a typical C program (4:18). Chapter A.4. Exercises: 23.
- invest.c, part 2/5: overview (3:58). Chapter A.4. Exercises: 24, 25.
- 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.
- invest.c, part 4/5: sections 5-6: helper function prototypes and the main function (4:40). Chapter A.4.
- 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).
- Header files and libraries (9:31).
Sample Code:
- Section A.1: HelloWorld.c
- Section A.4: printout.c, datasizes.c, overflow.c, typecast.c, invest.c
- Section A.4.16: helper.h, helper.c, main.c
- Problems, Section A.5: bubble.c, lights.c, hexdump.c
Microchip Documentation:
Chapter 1: Quickstart
Reading: Chapter 1
Videos: none
Code: PIC32quickstart.zip
Chapter 2: Looking Under the Hood: Hardware
Reading: Chapter 2
Videos:
- Introduction to the PIC32 microcontroller (5:10).
- Introduction to the PIC32 architecture (6:02).
- The PIC32 physical memory map (5:20).
- Introduction to the NU32 development board (4:03).
Chapter 3: Looking Under the Hood: Software
Reading: Chapter 3
Videos:
- The PIC32 virtual memory map (5:24).
- Understanding simplePIC.c (5:42). (The latest version of simplePIC.c includes xc.h, not plib.h)
- 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.)
- 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.)
Chapter 4: Using Libraries
Reading: Chapter 4
Videos:
- The NU32 library (5:28).
Code: 04_Code.zip
Chapter 5: Time and Space
Reading: Chapter 5
Videos:
- 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.)
- 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.)
Code: 05_Code.zip
Chapter 6: Interrupts
Reading: Chapter 6
Videos:
- Overview of interrupts on the PIC32 (4:29).
- PIC32 interrupt SFRs (6:22).
- The PIC32 shadow register set (1:25).
- Seven steps to using an interrupt with the PIC32 (3:47)
- 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.
Code: 06_Code.zip
Chapter 7: Digital Input and Output
Reading: Chapter 7
Videos:
- Intro to digital I/O on the PIC32 (6:24)
- Change notification on the PIC32 (1:18)
- PIC32 program with digital I/O and change notification (9:02)
Code: 07_Code.zip
Chapter 8: Counters / Timers
Reading: Chapter 8
Videos:
- Intro to PIC32 counter/timers (5:59)
- PIC32 timer SFRs (5:55)
- Using PIC32 timers to generate interrupts (3:34)
- Example PIC32 timer interrupt program (5:08)
Code: 08_Code.zip
Chapter 9: Output Compare
Reading: Chapter 9
Videos:
- Introduction to the PIC32 output compare (5:30)
- A PWM program on the PIC32 (3:12)
- Using output compare to create an analog output (3:09)
Code: 09_Code.zip
Chapter 10: Analog Input
Reading: Chapter 10
Video:
Code: 10_Code.zip
Chapter 11: PID Feedback Control
Reading: Chapter 11
Videos:
- Introduction to PID control (4:28)
- Improving the basic PID control algorithm (2:33)
- PID control of a mass-spring-damper (4:10)
- P, PI, and PD variants of PID control (2:42)
- Empirical PID gain tuning (7:08)
Code: PID_Code.zip
Chapter 12: Feedback Control of LED Brightness
Reading: Chapter 12
Code: LED_Code.zip
A faster version of nu32utility: 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.)
Chapter 13: Brushed Permanent Magnet DC Motors
Reading: Chapter 13
Video:
- Intro to brushed permanent magnet DC motors, part 1/2 (4:31)
- Intro to brushed permanent magnet DC motors, part 2/2 (7:10)
- Brushed DC motor equations (6:53)
- Brushed DC motor speed-torque curve (5:59)
- DC motor output power (2:05)
- Friction in DC motors (0:55)
- A DC motor data sheet (4:34)
Chapter 14: Motor Sizing
Reading: Chapter 14
Video:
- Introduction to gears (4:12)
- Gear efficiency (2:40)
- Types of gears (3:47)
Chapter 15: Motor Control
Reading':
Video:
- Driving DC motors, part 1/3: Flyback diodes (7:03)
- Driving DC motors, part 2/3: PWM (3:05)
- Driving DC motors, part 3/3: H-bridges (4:22)
- A professional motor control system (6:55)
Chapter 16: A Motor Control System
Reading: Chapter 16
Code: Motor_Project_Code.zip