OBSOLETE NU32 video page

From Mech
Jump to navigationJump to search

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:

  1. Writing your first program in C, HelloWorld.c (5:09). Chapter A.1. Exercises: 1.
  2. Differences between C and MATLAB (7:30). Chapter A.2. Exercises: 2, 3.
  3. Binary and hexadecimal (Base 2 and 16) (4:47). Chapter A.3.1. Exercises: 4, 6.
  4. Data types (5:30). Chapter A.3.1. Exercises: 8, 10.
  5. Using the data types (3:49). Chapter A.3.1. Exercises: 11.
  6. Representations of data types (5:15). Chapter A.3.1. Exercises: 12, 13.
  7. Pointer basics (5:54). Chapter A.3.2. Exercises: 14, 15.
  8. Sample program: printout.c (5:55). Chapter A.4. Exercises: 16 (not covered in video, reading only) 17, 18.
  9. Sample program: datasizes.c (2:57). Chapter A.4. Exercises: 9.
  10. Sample program: overflow.c (2:43). Chapter A.4. Exercises: 19.
  11. Sample program: typecast.c (5:43). Chapter A.4. Exercises: 20.
  12. invest.c, part 1/5: intro to a typical C program (4:18). Chapter A.4. Exercises: 23.
  13. invest.c, part 2/5: overview (3:58). Chapter A.4. Exercises: 24, 25.
  14. 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.
  15. invest.c, part 4/5: sections 5-6: helper function prototypes and the main function (4:40). Chapter A.4.
  16. 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).
  17. Header files and libraries (9:31).

Sample Code:

Microchip Documentation:

Microchip PIC32MX795F512L


Chapter 1: Quickstart

Reading: Chapter 1

Videos: none

Code: PIC32quickstart.zip


Chapter 2: Looking Under the Hood: Hardware

Reading: Chapter 2

Videos:

  1. Introduction to the PIC32 microcontroller (5:10).
  2. Introduction to the PIC32 architecture (6:02).
  3. The PIC32 physical memory map (5:20).
  4. Introduction to the NU32 development board (4:03).

Chapter 3: Looking Under the Hood: Software

Reading: Chapter 3

Videos:

  1. The PIC32 virtual memory map (5:24).
  2. Understanding simplePIC.c (5:42). (The latest version of simplePIC.c includes xc.h, not plib.h)
  3. 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.)
  4. 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:

  1. The NU32 library (5:28).

Code: 04_Code.zip


Chapter 5: Time and Space

Reading: Chapter 5

Videos:

  1. 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.)
  2. 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:

  1. Overview of interrupts on the PIC32 (4:29).
  2. PIC32 interrupt SFRs (6:22).
  3. The PIC32 shadow register set (1:25).
  4. Seven steps to using an interrupt with the PIC32 (3:47)
  5. 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:

  1. Intro to digital I/O on the PIC32 (6:24)
  2. Change notification on the PIC32 (1:18)
  3. PIC32 program with digital I/O and change notification (9:02)

Code: 07_Code.zip


Chapter 8: Counters / Timers

Reading: Chapter 8

Videos:

  1. Intro to PIC32 counter/timers (5:59)
  2. PIC32 timer SFRs (5:55)
  3. Using PIC32 timers to generate interrupts (3:34)
  4. Example PIC32 timer interrupt program (5:08)

Code: 08_Code.zip


Chapter 9: Output Compare

Reading: Chapter 9

Videos:

  1. Introduction to the PIC32 output compare (5:30)
  2. A PWM program on the PIC32 (3:12)
  3. Using output compare to create an analog output (3:09)

Code: 09_Code.zip



Chapter 10: Analog Input

Reading: Chapter 10

Video:

  1. The PIC32 analog-to-digital converter (6:47)

Code: 10_Code.zip


Chapter 11: PID Feedback Control

Reading: Chapter 11

Videos:

  1. Introduction to PID control (4:28)
  2. Improving the basic PID control algorithm (2:33)
  3. PID control of a mass-spring-damper (4:10)
  4. P, PI, and PD variants of PID control (2:42)
  5. 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:

  1. Intro to brushed permanent magnet DC motors, part 1/2 (4:31)
  2. Intro to brushed permanent magnet DC motors, part 2/2 (7:10)
  3. Brushed DC motor equations (6:53)
  4. Brushed DC motor speed-torque curve (5:59)
  5. DC motor output power (2:05)
  6. Friction in DC motors (0:55)
  7. A DC motor data sheet (4:34)

Chapter 14: Motor Sizing

Reading: Chapter 14

Video:

  1. Introduction to gears (4:12)
  2. Gear efficiency (2:40)
  3. Types of gears (3:47)

Chapter 15: Motor Control

Reading':

Video:

  1. Driving DC motors, part 1/3: Flyback diodes (7:03)
  2. Driving DC motors, part 2/3: PWM (3:05)
  3. Driving DC motors, part 3/3: H-bridges (4:22)
  4. A professional motor control system (6:55)

Chapter 16: A Motor Control System

Reading: Chapter 16

Code: Motor_Project_Code.zip