Programming 16-bit Microcontrollers in C : Learning to Fly the PIC24